如何摆脱大量敌人实例造成的滞后?

Ern*_*nyz 0 optimization actionscript-3

我正在制作一个闪光射击游戏,我遇到了一个问题.当舞台上有许多怪物被玩家看到时,游戏开始滞后.在我看来,它是由于Event.ENTER_FRAME(每个敌人的实例都有它),其中z-sorting,敌人运动,更新其他类似健康的东西.由于像theese这样的东西,不能每秒或以相似的时间间隔完成,我使用ENTER_FRAME.我的问题是,我怎么能在我的游戏中有很多敌人的实例,但仍然没有落后.我已经在所有代码中进行了优化,如果我没有弄错的话,大量的敌人就是这里的性能瓶颈.

如果我不清楚,请问我; 看到游戏转到http://ernyz.lhosting.info/bandymas.html或者如果你想看到代码,我将能够把它放在这里,只是问:)

kap*_*pex 5

每个实例都有一个输入框架事件很可能是问题所在.循环遍历所有实例并执行操作的单个事件通常更快.

你应该没有多少改变:不是向每个敌人添加监听器,而是只向舞台添加一个监听器并调用敌人的更新功能.

class Enemy {
    function update(e:Event) { /* ... */ }
}

class Main {
    function onEnterFrame(e:Event) {
        for each (var enemy:Enemy in enemies) {
            enemy.update(e);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)