2012-02-15 104 views
2

我正在创建一个安卓游戏,敌人随机生成,并且可以同时有多个。通过计时器或游戏循环创建新的敌人?

从定时器(所以5s,然后4s,然后6s ...等),或通过游戏循环(数到50,创造敌人,数到64,创造敌人)。

如果使用者在渲染游戏循环时使用的手机速度较慢,计时器可能会造成太多敌人,但如果使用游戏循环,则不会很快得到敌人。似乎每个人都有专业人士和合格人士。

另外,哪种方式更好地节省处理能力,使图像渲染速度更快?

在此先感谢

汤姆

而且,如果我用一个定时器每个敌人的“集团”,将有运行3个定时器。

+3

我想我们是一个组合:引擎应该由“蜱”驱动,但每次评估(动作,随机事件,超时显然)都不应该依赖蜱而是依赖于时间差异。通过这种方式,您甚至可以在不出现任何问题的情况下调整刻度(或自动适应硬件),但会自动获得更平滑的动作。 – 2012-02-15 01:02:38

+0

@他非常感谢您,我从来没有想过要依靠对方! – TomRichardson 2012-02-15 01:05:09

回答

1

我建议组合:引擎应该由“蜱”驱动,本身并不代表特定的持续时间。所有的发动机决策都应该基于时间计算完成而不依赖于时间标记(例如,System.currentTimeMillis减法)。这种方式当机器负载很高时,每秒可以获得较低的帧数,但运动距离不会受到影响。当负载较低时,您会获得更流畅的图形和动作。你应该检查FPS,如果它们升高,你甚至应该设置线程睡觉,或者你可以产生更多的敌人。如果太低,您可以降低图形细节或防止产生新的敌人以适应这种情况。所以我不会启动计时器,而是预先计算将来发生的事件的存储时间,并在游戏循环发生时检查游戏循环(当然不是精确比较,但现在是事件时间<)。