※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

以前に日記で書いたのですが、tonyuでfor文を記述するさいの注意点を書いておこうと思います。

まず、TonyuのFor文は遅いです。ご注意ください。

で、for文を書くのは通常オブジェクトにしましょう。決して、フレームマネージャーに記述してはいけません。もっとも、onBeforMove()とonAfterMoveなどの毎フレーム実行するメソッド限定の縛りです。

理由は、上記のメソッドでは、メソッドが完結するまでフレームが進まないからです。

サンプルがないと分かりづらいと思いますので、そのうちサンプルをアップする…と思います。たぶん、maybe…汗。

動作の順序は以下のようになっています。
onBeforeMove()完結

各オブジェクトの一フレーム

onAfterMove()完結

最初に戻る

通常オブジェクトに書かれたfor文は、いくら量の多いループでも動作速度を犠牲にしながらも上のループに沿って一フレームずつ動作します。
しかし、onBeforeMove()などのメソッドでは、そのメソッド内の全てのプログラムが終わるまで、他のオブジェクトが動作できないのです。
なわけで、10000回ぐらいのループをしたらドボン☆
毎フレーム、全てのオブジェクトにwait(10000)がかけられるようなものです。こんなんじゃ、まともなゲームは作れません。

ちなみに、for文の実行速度そのものは、通常オブジェクトよりもonBeforeMoveなどのほうが早いように思われます。ただし、計測結果などの根拠はありません。