我有一个移动的火星着陆器,我想在我正在制作的游戏中检测到它何时撞到加油站的顶部。我想知道确切知道他们何时击中的最佳方法。
我现在正在做的是我有 3 个计时器来控制水平、垂直和重力运动。每个计时器都会使火星着陆器移动一点,所以我将碰撞检测代码放在每个计时器的顶部和底部,但由于每个计时器每 50 毫秒触发一次 a) 它不会准确检测到碰撞的时间 b) 它会调用崩溃检测代码很多次。
这是其中一个计时器的样子,并且对于所有 3 个计时器来说几乎相同(我在 vb 2008 中制作游戏,这只是一些伪代码):
gravity timer:
detectCrash()
Move ship
detectCrash()
End timer
什么是更准确的方法来查看它们是否在从碰撞到调用的代码的响应时间方面发生碰撞。
我如何将检测称为较低的次数?
我可能会制作另一个每 10 毫秒左右触发一次的计时器并检查碰撞,但这会运行代码很多次(每秒 100 次),不是吗?
我也很好奇大型游戏如何处理这样的事情,这种事情很可能每秒发生很多次。
谢谢。