ラベルの設定・ラベルジャンプ / ツクールMVスクリプトリファレンスwiki
ツクールMVでラベルの設定・ラベルジャンプをスクリプトで行うなら以下の通りです。
ラベル設定
//ラベル名
ラベルジャンプ
for (var i = 0; i < this._list.length; i++) {
if(this._list[i].parameters[0] == "//ラベル名"){
this.jumpTo(i)
}
}
サンプルコード(testというラベルを設定)
//test
サンプルコード(labelというラベルへジャンプ)
for (var i = 0; i < this._list.length; i++) {
if(this._list[i].parameters[0] == "//test"){
this.jumpTo(i)
}
}
コード解説
ラベル設定://ラベル名
/(スラッシュ)二つで1行のみコメントアウトという処理になりますが、ここで紹介するラベルの設定ではこのコメントアウト処理を使っています。
ゲーム処理に関係しないコードならなんでも良いのですが、簡潔でかつ、分かりやすいのがこのコメントアウト処理だったためです。
ラベル名を変えるときはダブルスラッシュ以降の文字を変更してください。
ラベルジャンプ1,5行目:for (var i = 0; i < this._list.length; i++) { }
イベントに記述されているコマンドをすべて取得して調べる必要があるため、コマンドの数だけfor文で繰り返し処理を行っています。
"this._list"でイベントに記述されているすべてのコマンドを取得し、その後の".length"でコマンドの数を取得しています。
このfor文の中の変数iとはつまり、イベントコマンドの行数を表しています。
ラベルジャンプ2,4行目:if(this._list.parameters[0] == "//ラベル名"){ }
イベントコマンドの第1パラメータを取得し、その値が"//ラベル名"かどうかを条件分岐のif文で確かめています。
この条件に合ったときのみ3行目(ラベルジャンプ)が実行されるようにしています。
".parameters[0]"で第1パラメータを取得します。
ラベルジャンプ3行目:this.jumpTo(i)
この行でラベルジャンプ実行しています。
"this.jumpTo"メソッドは()内に指定した値の行に処理を飛ばすという処理になります。
i、つまりif文の条件を通り抜けたコマンドの行のみこのjumpToメソッドが適応されることになります。
間違って同じラベル設定するとより後ろに設定されたラベルに飛ばされます。
ツクールMVスクリプトリファレンスwikiトップページへ戻る
オリジナルシステムなどの製作依頼・相談があればプラグイン・マップ等個別製作依頼のページまでお願いします。