好吧,所以在我尝试重新创建Slime环境时,我遇到了一个问题:当我的球速度足够高时,它不会与物体“碰撞”,直到它已经很好地嵌入它们中,如下所示。
我想知道更精确的碰撞检测的最佳方法是什么。我可以想到两件可能有用的事情。
第一种方法是提高帧速率,以便降低速度,但似乎解决方案不会在更高的速度下扩展。
我的第二个想法是这样的:在改变球的位置之前,我可以找到它的路径并检查该线是否与任何其他物体相交(如下所示)。如果是这样的话,那么我可以将球的位置设置为与物体几乎相邻(重叠1个像素)。
那么,有关最佳课程的想法吗?欢迎实施细节。
答案 0 :(得分:1)
通常,这个问题的解决方案正是你的第二个建议。
原因是为了准确计算碰撞检测,您应该将计算基于最精确的事情,即对象和数学函数的位置。
如果你采用第一种方法,那么你将牺牲精确度,因为不仅对象的图形表示是近似的,而且它也可能在不同的环境中发生变化。