我正在实现一个小游戏,并且无法让物理正常工作。在这个游戏中,有一个球(一个在帧之间移动的圆,并且可能会改变半径)和几个墙(线段也在帧之间变化和移动)。我可以正确地检测到碰撞,让球以正确的方向反弹是没有问题的。
如果球在一帧中与一条线相交,然后在下一帧中再次与它相交,从而导致双弹跳,就会出现困难。我可以将球沿线的法线向后移动,直到它处于有效位置,但这会在有问题的线沿其轴被击中时导致非常奇怪的行为(想象一个乒乓球掉在直立的牙签上,然后突然移到一边,使它在牙签的一侧……)。当球在给定帧中与多条线相交时也会出现一些问题(想象四条线一起形成一个矩形并且球与所述矩形的角相交)——它应该从哪个方向反弹?它应该向哪个方向转变?
我真的没有具体的问题,但我正在寻找提示或一些有用的教程。到目前为止,我设法找到的所有 2D 仅涵盖矩形交叉点。
如果有任何区别,我正在使用 XNA。
谢谢,
卡梅伦