我目前正在制作一个处理草图,其中包含一个非常基本的重力模拟(基于 Daniel Schiffman 的《学习处理》一书中给出的示例),但我的重力一直以一种奇怪的方式表现,我不知道该怎么做它。这是我能想到的最简单的例子:
float x = 50;
float y = 50;
float speed = 2;
float gravity = 0.1;
void setup() {
size(400, 400);
}
void draw() {
background(255);
fill(175);
stroke(0);
ellipseMode(CENTER);
ellipse(x, y, 10, 10);
y = y + speed;
speed = speed + gravity;
//Dampening bounce effect when the ball hits bottom
if (y > height) {
speed = speed * -0.95;
}
}
除了不同的启动速度和不同的窗口大小之外,上述内容几乎与 Schiffman 书中的内容相同。前两次反弹似乎工作正常,但在第三次反弹时,球会卡在窗口底部。
我什至不知道从哪里开始尝试调试它。任何人都可以提供任何指示吗?