2018 ソフトウェア設計及び演習用の班Wiki

18::gr12::敵AIモジュール

enemyAI.js

担当:千葉 大輔

Monsterクラス

< メソッド >
  • setStatus(id,posX,posY)
    • 敵生成時に敵の種類に応じたステータスの設定、また、イベントリスナーの登録も行う。
    • イベントリスナーでは、無敵時間の点滅処理、攻撃タイプ(接近or遠距離)に応じたプレイヤー接近時の行動選択、攻撃のエフェクト処理、遠距離の敵の攻撃範囲条件の決定、ダメージの可視化、敵消滅時の処理、画面外でのフリーズ処理、スキル発動、ボスのHPに応じた行動選択、壁の当たり判定の設定を行う。
  • moveNormal()
    • 主人公未発見時の自由移動状態の行動。ランダムで上下左右に少しだけ移動する。
  • moveWithPlayer(status)
    • 主人公を常に中心に置くシステムのため主人公の移動(キー入力)に応じて反対方向へと一定距離移動させる処理。
  • moveToPlayer(player)
    • 接近攻撃タイプの敵が主人公発見状態のときに主人公に向かって最短距離で急接近してくる行動の処理。
  • escapeFromPlayer(player)
    • 遠距離攻撃タイプの敵が主人公発見状態のときに主人公からなるべく遠ざかるように逃避行動を行う処理。
  • attackToPlayer(nummap)
    • 接近攻撃タイプが主人公との距離がとても近くなった時に攻撃行動を行う処理。
  • shootAttack(nummap,player)
    • 遠距離攻撃タイプの敵の攻撃範囲内に主人公がいる状態の時に球を発射して攻撃をしようとする処理。(攻撃範囲は敵によって異なる)
  • useSkill(skillnum)
    • 敵に設定されたスキルの具体的な行動内容について記したメソッド。イベントリスナーに登録された部分から敵に応じてここからスキルが呼び出される。
  • decreaseHP(player)
    • 敵が主人公から攻撃を受けた時に主人公の攻撃力に応じてHPを減少させる処理。以前まではノックバックの処理も行っていたが、壁の当たり判定の問題により現在は廃止。
  • displayDamage(nummap,damage,comp,hugou)
    • 敵が主人公から攻撃を受けた際に受けたダメージを可視化するためのメソッド。ここでは属性相性に応じて(相性が良ければ赤、悪ければ青、普通なら黒)表示ダメージの色を変えている。(なお回復スキルのダメージ表示は緑色)

関数

  • makeMonster(mapnum)
    • 事前にマップ毎に登録された(data.js内に記述)モンスターの配置情報に応じてそのマップに敵を配置していく関数。引数にはマップの番号を指定する。
  • loopMove()
    • 100ミリ秒毎に呼びだされて、それぞれの敵の状態に応じた現在の行動を選択する関数。ここでは現在の状態と攻撃タイプによって次行動が選ばれる。
  • randomSkill()
    • 1000ミリ秒毎に呼びだされて、それぞれの敵にスキル発動確率を指定する乱数を与える関数。ここで与えられた乱数に応じてイベントリスナーに登録された部分で実際に発動するかを決めている。
  • numRestart()
    • 10000ミリ秒毎に呼びだされて、ボスの敵召喚スキルの再発動を促すために変数を初期化する関数。これによって10秒ごとにボスのHPに応じて石像が召喚される。


最終更新日:2018/08/03 09:44:42