敵キャラのHP増減 / ツクールMVスクリプトリファレンスwiki
ツクールMVで敵キャラのHP増減をスクリプトで行うなら以下の通りです。
this.iterateEnemyIndex(敵ID, enemy => {
this.changeHp(enemy, 増減値, 戦闘不能を許可するか);
});
戦闘不能については以下のように対応しています。
許可:true
不可:false
敵IDについては-1で敵全体が対象となり、0から1番目の敵IDとなります。
サンプルコード(1番目敵(最初に追加した敵)のHPを100減らす。戦闘不能を許可)
this.iterateEnemyIndex(0, enemy => {
this.changeHp(enemy, -100, true);
});
コード解説
1行目:this.iterateEnemyIndex(敵ID, enemy => {
"iterateEnemyIndex"メソッドは対象が敵全体か、敵単体かを判別し、処理(ここではHPの増減)を行うメソッドです。
もし、全体を対象とするのか、単体を対象にするのか決まっている場合は以下ようなコードでも可能です。
//敵単体を対象とする場合
this.changeHp($gameTroop.members()[敵ID], 増減値, 戦闘不能を許可するか)
//敵全体を対象とする場合
$gameTroop.members().forEach(enemy => {
this.changeHp(enemy, 増減値, 戦闘不能を許可するか)
});
敵全体を対象とした時のコード量はあまり変わりませんが、単体を対象とする時は1行で済むため、単体のみを対象とする時はこちらを使用した方が良いでしょう。
enemyはここで使用されるパラメータで、対象とする敵のデータが格納されます。
このenemyというのは変数のため、お好きな名前(tekiやbossなど半角英数字)に設定することも可能です。
2行目:this.changeHp(enemy, 増減値, 戦闘不能を許可するか);
"changeHp"はHPに増減値分の変更を加える処理です。
正の値で増加、-(マイナス)を付けて負の数で減少です。
第1パラメータのenemyは敵単体を指します。
敵IDが0以上であれば指定したID-1の敵を、負の数であれば敵の数だけ繰り返して敵全体に"changeHp"メソッドが適応されます。
HPの増減は戦闘不能になる可能性があるので戦闘不能を許可するかどうかを決める必要があります。
trueで戦闘不能を許可、falseで戦闘不能を禁止し、HPが0のときは1にします。
ツクールMVスクリプトリファレンスwikiトップページへ戻る
オリジナルシステムなどの製作依頼・相談があればプラグイン・マップ等個別製作依頼のページまでお願いします。