如果我不清楚,请问我;看到游戏转到http://ernyz.lhosting.info/bandymas.html或者如果你想看到代码,我可以把它放在这里,只要问:)
答案 0 :(得分:5)
每个实例都有一个输入框架事件很可能是问题所在。您遍历所有实例并执行操作的单个事件通常会更快。
你应该没有多少改变:不是向每个敌人添加监听器,而是只向舞台添加一个监听器并调用敌人的更新功能。
class Enemy {
function update(e:Event) { /* ... */ }
}
class Main {
function onEnterFrame(e:Event) {
for each (var enemy:Enemy in enemies) {
enemy.update(e);
}
}
}
答案 1 :(得分:1)
根据我的经验,除非你做了一些非常错误的事情,否则Flash渲染管道将占用您应用程序的大部分时间。而且,由于你获得了更多的敌人,你会得到更多的MovieClip和更复杂的渲染。
但是为每个对象设置一个ENTER_FRAME事件确实是一个很容易避免的大开销。
优化代码之前的一个好习惯是通过分析器实际运行它。我不相信实际的Flash程序有它,但Flash Builder肯定会这样做。如果您向我们发布截图或正在分析的游戏日志,我们可以提供更多帮助。
通过快速玩游戏,我发现你所有的敌人都是一堆带有一堆渐变的图形,因此渲染成本很高。您是否尝试过将质量设置为低?滞后会消失吗?