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. 这个实现起来更复杂,但是您可以尝试检测玩家是否在给定方向上以固定间隔发射了一系列子弹,并用带有重复子弹图像的单个精灵来表示它们。
于 2012-11-18T23:21:22.017 回答