我找不到如何提问,所以链接上有一个演示。我很确定这是一个简单的问题,但我似乎找不到原因。
我的问题是:为什么球停止弹跳?是关于乘法或除法中的舍入等...
void move() {
PVector v0 = v;
PVector dv = PVector.mult(a, deltaT);
v.add(dv);
PVector d = PVector.add(
PVector.mult(v0, deltaT),
PVector.mult(dv, deltaT * 0.5));
move(d.x, d.y);
}
void move(float dx, float dy) {
p.x += dx;
p.y += dy;
if (p.x > width - r) {
p.x = width - r;
v.x = -v.x;
}
if (p.x < r) {
p.x = r;
v.x = -v.x;
}
if (p.y > height - r) {
p.y = height - r;
v.y = -v.y;
}
if (p.y < r) {
p.y = r;
v.y = -v.y;
}
}