簡単な質問があります。actionscript 3.0 と Adobe flash professional cs6 を使用してゲームを作成しています。シンプルでクリーンでラグがないようにしたいのですが、私のゲームでは、画面上で同時にさまざまな方法で移動する多くの (10-30) ムービークリップが必要です。Event.ENTER_FRAME イベントに時間ベースのアニメーションを使用したいのですが、各個人が (これを実行できるスーパークラスに固有のものであるため) ムービークリップが独自の時間を追跡して移動するかどうかはわかりません。そのようにするか、マネージャークラスに時間を追跡させてから、時間をパラメーターとしてすべてのムービークリップに関数を呼び出します。結局どちらが速いのか知りたいです。
1 に答える
上記の素晴らしい回答に追加するには、ゲームのどのコンポーネントが最も注意と最適化を必要とするかを慎重に検討して計画する必要があります。すべての側面を最適化しようとすると、非常に面倒で管理が難しくなります。これに加えて、特定の種類の最適化は同時に行うことができません (たとえば、速度とメモリ消費を同時に最適化できないことがよくあります。一方を改善すると他方が低下するためです)。
たとえば、ゲームが画面上で多くのことが起こることがわかっている場合 (多くのグラフィックスと効果)、描画を改善するために新しい Stage3D API を活用するStarlingのようなレンダリング パフォーマンスに焦点を当てたライブラリを真剣に検討する必要があります。とてつもなく速い。
別の例で、ゲームがオブジェクト間で多くの測定を行い、レイキャスティングやパスファインディングなどを実装する必要がある場合は、これらのアルゴリズムを最も効率的に実行できるゲームのグリッドを構築する方法を検討する必要があります。
クリーン度に関しては、特に について言及する場合Event.ENTER_FRAME
は、ゲームのメイン クラス (または同様のハンドラー クラス) でこのイベントのハンドラーを 1 つだけ実装する必要があります。実際のゲーム オブジェクトはこのクラスの配列にリストされている必要があり、enterFrame ハンドラーはその配列を反復処理して、それぞれの関数を呼び出す必要がありますupdate()
。