我一直关注Gamedev.net上的“A Verlet based approach for 2D game physics”并且我写了类似的东西。
我遇到的问题是盒子滑过地面太多了。 如何添加一个简单的休息状态的东西,其中盒子会有更多的摩擦力,只滑动一点点?
答案 0 :(得分:0)
在移动物体上引入一个小而恒定的加速度,指向与运动相反的方向。并确保它实际上不能反转动作;如果您在积分步骤中检测到,只需将速度设置为零。
如果你想更加真实,加速度应该来自一个力,该力与物体和它所滑动的表面之间的法向力成正比。
你可以在任何基本的物理文本中找到它,如“动摩擦”或“滑动摩擦”。
答案 1 :(得分:0)
在verlet集成中:r(t)=2.00*r(t-dt)-1.00*r(t-2dt)+2at²
将乘数改为1.99和0.99为摩擦
编辑:这更为真实:
r(t)=(2.00-friction_mult.)*r(t-dt)-(1.00-friction_mult.)*r(t-2dt)+at²