ツクールMVのスクリプトでラベル・ラベルジャンプを行う方法
ラベルはイベントページの操作を行う上で都合のいいところに飛んでくれる便利なものです。しかし多用してしまうとどういったフローになるのかがわからなくなるのでなるべく使用する数は抑えたいところです。
また、ラベルで条件分岐の中に飛んだ時、そのまま条件分岐を無視して上から処理されてしまうので、適当な箇所でイベントの中断をする必要があります。
まずはラベルの設定をツクールMVのスクリプトで行う方法から。
this._list[this._index].parameters[0] = "ラベルの名前"
サンプルコード("jump1"とラベルに命名)
this._list[this._index].parameters[0] = "jump1"
次にラベルジャンプをツクールMVのスクリプトで行う方法です。
for (var i = 0; i < this._list.length; i++) {
command = this._list[i];
if (command.parameters[0] === "ラベルの名前") {
this.jumpTo(i)
}
}
サンプルコード("jump1"と名付けたラベルにジャンプ)
for (var i = 0; i < this._list.length; i++) {
command = this._list[i];
if (command.parameters[0] === "jump1") {
this.jumpTo(i)
}
}
上記のスクリプトでラベルの設定、ラベルジャンプを行うときの注意ですが、イベントにあるようなラベルでの使い方では問題が出てきます。
というのも、ラベル・ラベルジャンプのどちらもスクリプトで設定して、ラベル命名をする前にラベルジャンプをしてしまうとうまく動かず、ジャンプされないのです。
これは恐らくツクール内部でラベル命名がある場合(command118がある場合)先にそれを実行するようになっており、スクリプトでラベルの命名をしてしまった場合、それが行われないためだと推測されます。
この場合、ラベルの命名をイベントコマンドで行ってラベルジャンプはスクリプトで行えば、問題なく実行されます。
もし、スクリプトでそういった条件下においてジャンプをしたい場合はジャンプをしたい行数を数えて以下のスクリプトを実行します。
this.jumpTo(ジャンプしたい行)
//以下サンプル(17行目にジャンプしたいとき)
this.jumpTo(17)
これは行数を指定し、数えなくてはいけないのでラベルジャンプのような汎用性は下がってしまいます。
適宜、用途により使い分けてください。
ツクールMVスクリプトリファレンスwikiへ戻る

にほんブログ村