我正在试着写一个简单的物理模拟器。然而,我面临着球如何反弹的问题。即使我的恢复设置为1,球每次触地时也会额外弹跳一点。
Restitution变量:
public static double RESTITUTION=1d;处理退回的代码:
if(Y<c.getRadius()){
VY=Math.abs(VY)*Utils.RESTITUTION;
Y=c.getRadius();
c.getCenter().setY(Y);
c.getV().setY(VY);
}所有变量都使用double作为数据类型。Y是球的中心。VY是速度的Y分量。
发布于 2016-03-19 20:32:23
如果是Y < c.getRadius(),球已经通过c.getRadius() - Y进入了地面,这是在回传的过程中添加的。
我认为你应该保持Y不变,只是反转速度,等等。
如果你以一个角度反弹,你可能会计算出准确的撞击点,并据此进行修正。
https://stackoverflow.com/questions/36101586
复制相似问题