私は現在、非常に基本的な重力シミュレーション (Daniel Schiffman の著書 Learning Processing にある例に基づく) を特徴とする処理スケッチに取り組んでいますが、重力が奇妙な方法で動作し続け、どうすればよいか途方に暮れています。それ。これが私が思いつく最も簡単な例です:
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 の本にあるものと実質的に同じです。最初の 2 回のバウンスでは問題なく動作しているように見えますが、3 回目のバウンドでボールがウィンドウの下部に引っかかってしまいます。
これをどこからデバッグしようとしているのかさえわかりません。誰でもポインタを与えることができますか?