我有一个漫游火星着陆器,我想在我制作的游戏中检测它何时撞到加油站的顶部。我想知道最好的方法来准确地判断何时发生碰撞。
目前我正在做的是使用三个定时器控制水平、垂直和重力运动。每个定时器使火星着陆器移动一点,所以我将碰撞检测代码放在每个定时器的顶部和底部,但由于每个定时器都会每50毫秒触发一次,a)它不会精确地检测到碰撞,b)它会多次调用碰撞检测代码。
以下是其中一个定时器的示例,所有三个定时器基本相同(我正在使用vb 2008制作游戏,这只是一些伪代码):
目前我正在做的是使用三个定时器控制水平、垂直和重力运动。每个定时器使火星着陆器移动一点,所以我将碰撞检测代码放在每个定时器的顶部和底部,但由于每个定时器都会每50毫秒触发一次,a)它不会精确地检测到碰撞,b)它会多次调用碰撞检测代码。
以下是其中一个定时器的示例,所有三个定时器基本相同(我正在使用vb 2008制作游戏,这只是一些伪代码):
gravity timer:
detectCrash()
Move ship
detectCrash()
End timer
有没有更准确的方法来查看它们在碰撞时的响应时间,从碰撞到调用代码的时间?
如何使检测次数更少?
我可以可能创建另一个定时器,每隔大约10毫秒就会触发并检查碰撞,但这样会运行很多次代码(每秒100次),对吧?我也很好奇像这样的大型游戏如何处理类似的情况,因为这种情况很可能会在一秒钟内发生多次。
谢谢。