バトエンを作るうえで必ず考えなければならないのが 「処理の順序」!!! これを考えなければ当たり判定がズレたり、変数にバグが生じたりするのだ!! ってことで、今だに処理の順序がよくわからなかったので実験で調べてみました。ただし、自分はバトエンで ”ステージ”にコードを組まない派だし、わかりやすいようにスプライトのみの実験としました <実験内容> スプライトを5つ作り、番号の順にスプライトリストに 並べた。また全スプライトに0から変数を1ずつ増やし、増やした直後の変数の値を「と考える」ブロックで可視化するコードを旗が押された直後1フレームだけ実行させるようにした。ただし「4」のスプライトには上記のコードを実行させる前に「1」のスプライトへメッセージを送らせた メッセージの内容は、上記のものと完全に同じ物。 <結果> 旗を押すと、6.2.3.4.5 と数字が並ぶ結果になった まず、結果から「1」の数字は”6”になっているので、「5」のスプライトの後にコードが実行されていると分かる。 そして、「2」の数が”2”になっているので、”1”の数を持っていたのは「1」だと分かる。つまり、「1」は、スプライト全体のコード処理の最初と最後にコードが実行されていたことが分かる。メッセージを送るコードを抜いて再び実験をすると、「1」の数は”1”になるので、メッセージとして実行されたのは最後だと分かる。また、この実験ではメッセージを送ったのは「4」なので、送られたメッセージは全てのスプライトの処理が終わってから行われると分かる。この実験とは別に、「5」にもメッセージを受け取るコードを追加し実験してみると、 6.2.3.4.7 と なり、メッセージはまたスプライトリスト順に処理されることが分かった。 <まとめ> ・コードは基本的にスプライトリスト順に処理される ・メッセージは処理の一番最後に実行される ・メッセージの処理もスプライトリスト順に処理 説明下手です!ごめんね!!
とりあえず実験結果は得られた。 この結果になるならどうして自分のバトエンは バグってるんだ...?