|
|
1
2
我们不能告诉你是否值得提高准确度,但应该在测试过程中变得明显。为了提高碰撞检测的可靠性,您有几种选择:
|
|
2
0
这在很大程度上取决于检查碰撞的频率(以及播放器的输入设备)。当你经常检查的情况下,两个移动'在同一时间'将变得不太可能。如果这是一个基于回合的策略游戏,这将是一个不同的问题。 也就是说,我不知道你在详细使用哪个模型,但是如果你有一个线程,检查播放器输入,还有一个线程进行运动计算和碰撞检测,那么两者都必须同步(读/写锁)。在这种情况下,很明显,先发生了什么。同样的道理,如果你只使用一个线程。 根据物理模型,输入可以控制加速度,从而决定速度,进而决定位置。如果对象从上一个位置到(可能的)下一个位置的移动线与当时墙的位置相交,则会发生碰撞(考虑到可能发生碰撞的整个轮廓)。 可能更难的是计算反弹的效果。当我写一个基于OpenGL的游戏时,我发现这是真的,在这个游戏中,墙壁不能移动,但地板可以倾斜:当反弹不足以抵消墙壁上的加速度时,碰撞后你仍然会在墙内。我认为,在投入了一些努力之后,它运行得非常好(包括沿着墙滚动,这是另一个问题),但是对于移动墙,它甚至有点困难。 |