java - 通过计时器或游戏循环创建新敌人?

标签 java android loops timer

我正在创建一个随机生成敌人的安卓游戏,并且一次可以有多个。

从计时器随机创建敌人(5 秒、4 秒、6 秒等)或通过游戏循环(数到 50,创建敌人,数到 64,创建敌人)更好吗?敌人)。

如果这个人使用的手机在渲染游戏循环时速度很慢,计时器可能会制造出太多敌人,但如果它使用游戏循环,他们就不会很快找到敌人。似乎各有利弊。

另外,哪个更能节省处理能力,从而更快地渲染图像?

提前致谢

汤姆

另外,如果我为每个“组”敌人使用一个计时器,那么将会运行 3 个计时器。

最佳答案

我推荐一种组合:引擎应该由本身不代表特定持续时间的“滴答声”驱动。所有引擎决策都应基于独立于滴答的时间计算来完成(例如 System.currentTimeMillis 减法)。这样,当机器上有高负载时,每秒帧数会降低,但移动距离不会受到影响。当负载较低时,您会获得更流畅的图形和运动。您应该检查 FPS,如果它们变高,您甚至应该将线程设置为 sleep 状态,否则您会产生更多的敌人。如果它变得太低,您可以降低图形细节或防止生成新的敌人以适应这种情况。因此,我不会启动计时器,而是存储您预先计算为将来发生的事件的时间,并在游戏循环中检查它们是否该发生(当然,不是精确比较,而是事件时间<现在)。

关于java - 通过计时器或游戏循环创建新敌人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9286439/

相关文章:

android studio 设计器预览 : how to include device frame?

r - 正确地将 for 循环转换为并行循环

java - 错误标记电子邮件 Java

android - X25519 是否可用作 Android 中 KEX 的曲线?

java - 在java中设置静态对象

java - 异步任务,此标记后预期的维度

javascript - 使用 node.js + Q deferred/promises 模块从同步回调创建同步循环

loops - Fortran forall 限制

java - 自生成的公钥确实具有相同的开头

java - libGDX 用线连接两个 Actor