敵キャラの出現 / ツクールMVスクリプトリファレンスwiki
ツクールMVで敵キャラの出現をスクリプトで行うなら以下の通りです。
this.iterateEnemyIndex(敵ID, function(enemy) {
enemy.appear()
$gameTroop.makeUniqueNames()
})
敵IDについては負の数で敵全体が対象となり、0から1番目の敵IDとなります。
サンプルコード(敵IDが2の敵を出現させる)
this.iterateEnemyIndex(2, function(enemy) {
enemy.appear()
$gameTroop.makeUniqueNames()
})
コード解説
1,4行目:this.iterateEnemyIndex(敵ID, function(enemy) {
"iterateEnemyIndex"メソッドは対象が敵全体か、敵単体かを判別し、処理(ここでは敵キャラの出現)を行うメソッドです。
もし、全体を対象とするのか、単体を対象にするのか決まっている場合は以下ようなコードでも可能です。
//敵単体を対象とする場合
$gameTroop.members()[敵ID].appear()
//敵全体を対象とする場合
$gameTroop.members().forEach(function(enemy){
enemy.appear()
});
敵全体を対象とした時のコード量はあまり変わりませんが、単体を対象とする時は1行で済むため、単体のみを対象とする時はこちらを使用した方が良いでしょう。
"function(enemy)"では対象に実行する処理を指定しています。
"function"とは処理の塊を表し、enemyはここで使用されるパラメータで、対象とする敵のデータが格納されます。
このenemyというのは変数のため、お好きな名前(tekiやbossなど半角英数字)に設定することも可能です。
見やすさを優先したため、function後の"{"で改行していますが、塊としては"function(enemy){処理}"となります。
2行目:enemy.appear()
"appear"メソッドはそのキャラクターに設定されている隠れているか、現れているかを決める"_hidden"という変数をtrueにしています。
3行目:$gameTroop.makeUniqueNames()
"makeUniqueNames"メソッドでは敵パーティーに同じ種類の敵がいた場合にA,B,C…というように個別記号を付けています。
この記述がないと同じ種類の敵がいた場合、同名の敵が出てきてしまい、その敵に対して同じ戦闘結果が反映されてしまいます。
絶対にモンスターが被らない場合のみ、省略可です。
ツクールMVスクリプトリファレンスwikiトップページへ戻る
オリジナルシステムなどの製作依頼・相談があればプラグイン・マップ等個別製作依頼のページまでお願いします。