- 汎用ゲームエディター『Multimedia Fusion2』 9
583 :名前は開発中のものです。[sage]:2011/11/12(土) 23:18:27.12 ID:UdqZwIpb - >通し番号をセットするアクションと、高速ループの実行アクションを同じイベントに組み込むと
>通し番号が何故か+1された値でセットされてしまいます。 Wikiに書いてあるこれって、実際に確認した人います?日本語の体験版で確認しているからなのかも しれないのですが、どうも動作が書かれているのと違うようなのですが・・・ 高速ループ処理時、問題は通し番号かどうかには関係なくオブジェクトの値にアクセスする アクション全般に及んでいて、次のような動作をしているように見えます。 (原因は、イベント内のアクションでオブジェクトの選択状態が見えない規則で複雑に変化し、 それによって値が正しく参照・反映されるかどうかが直観では分かりにくい挙動になるためのようです。) [ルール1] 高速ループアクションを含むイベント行でセットされるオブジェクトの値は、たとえ高速ループを呼ぶより 先に値がセットされていても、高速ループの中ではオブジェクトに値がまだ反映されていない。 (通し番号でも、単なる変数値セットでも同じ。) [ルール2] 高速ループアクションを含むイベント行でオブジェクトにセットした変数値は、高速ループ内で 同じオブジェクトに対して(たとえ別変数であったとしても)値をセットしている場合には イベント行を抜けたときに最終的に値が反映されずに破棄されている場合がある。 あるいは、高速ループ内でオブジェクトに設定した値が破棄されている場合もある。 (イベント行・高速ループのどちらかだけで操作しているオブジェクトは問題なくセットした値が 反映される。) どうやら、注意すべきは通し番号の方ではなく、イベントループ呼び出しの方のようです。 ※「見えない選択規則」というのは、試しているうちになんとなく分かってきたのですが、 書くにはちょっと複雑すぎます・・・
|
- 汎用ゲームエディター『Multimedia Fusion2』 9
584 :名前は開発中のものです。[sage]:2011/11/12(土) 23:34:04.65 ID:UdqZwIpb - (↑上で書いてる「同じオブジェクト」というのは、フレーム内に
◆◆◆◆◆◆□□□●●△△ などの実体がある場合に [フレームが開始] ◆:変数Aを変更 イベントループ呼び出し [高速ループ] ◆:変数Bを変更 という風に、(同じ実体に限らず)同じオブジェクトを参照する記述を書いた場合のことです。 この場合、変数Aや変数Bは正しく反映されるとは限りません。 これが [フレームが開始] ◆:変数Aを変更 イベントループ呼び出し [高速ループ] □:変数Bを変更 などの場合、高速ループ内で◆の変数Aの値は反映されていないので参照できませんが、 ◆にセットした値と□にセットした値は、最終的に正常に反映されます。) #もしかして当たり前のことだったでしょうか・・・
|
- 汎用ゲームエディター『Multimedia Fusion2』 9
585 :名前は開発中のものです。[sage]:2011/11/12(土) 23:38:18.94 ID:UdqZwIpb - #重ね重ねすみません。「高速ループアクション」「イベントループ呼び出し」など、言葉がばらばらになってしまいましたが、
これは全部高速ループを開始するアクションのことです。
|