海獣のTonyu@Wiki

フレームマネージャーと通常オブジェクトでのfor文

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

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

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

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

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

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

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

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

onAfterMove()完結

最初に戻る

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

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

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

記事メニュー
目安箱バナー