0

「gameQuery」jQuery プラグインを使用して、シューティング ゲームである js ゲームを作成しています。

多数の弾丸 (たとえば 100 個以上) がある場合、アニメーションの回転が非常に遅くなります。

DOM の移動を循環させるためにコード ブローを使用します。これは、20 ミリ秒ごとに関数を実行することを意味します。すべての弾丸は配列に格納され、

$.playground().registerCallback(function(){
   for(var i = 0; i < bulletList.length; i++) {
     //move bullet
     ...
   }
}, 20);

コードを最適化して効率を高めるにはどうすればよいですか? どうも!

4

1 に答える 1

1

ここに私が考えることができるいくつかのことがあります:

  1. 弾丸との衝突検出を行っていますか。はいの場合、何百ものスプライトを表示すること自体が問題になるはずなので、これはおそらく物事が遅くなるポイントです.
  2. それらの弾丸はアニメーション化されていますか (複数のフレームがありますか?) はいの場合は、アニメーションなしで試して、これがパフォーマンスにどのように影響するかを確認してください。
  3. すべての弾丸が同じ方向に同じ速度で移動する場合は、すべての弾丸をグループに入れてから、代わりにグループを移動できます。
  4. それらが同じ方向に移動しない場合でも、それらをグループに入れることができます。次に、すべてを移動する前に、このグループを切り離します。完了したら、グループをゲームに再度追加できます。
  5. これは実装がより複雑ですが、プレーヤーが一連の弾丸を特定の方向に一定の間隔で発射したことを検出し、それらを弾丸の画像を繰り返し表示する 1 つのスプライトで表現することができます。
于 2012-11-18T23:21:22.017 に答える