私のプログラムには、ボールを継続的にバウンドさせる次のメソッドがあります。変更を試みましたが、ボールを GUI の下部で停止させることができないようです。私の主な目標は、実際のボールをバウンドさせているかのようにメソッドをシミュレートすることです。
private void updateDelta() {
final int minimumMovement = 5;
final int maxExtra = 10;
deltaY = minimumMovement + (int) (Math.random() * maxExtra);
}
public void verticalBounce(Container container) {
// controls vertical ball motion
if (upDown) {
y += deltaY;
if (y >= getHeight()) {
upDown = false;
updateDelta();
}
} else {
y += -deltaY;
if (y <= 0) {
upDown = true;
updateDelta();
}
}
}
アップデート:
ボールがバウンドしてグイの底で止まります。
public void verticalBounce(Container container) {
deltaY = deltaY - gravity;
y = y + deltaY;
if (y > getHeight()) {
y = getHeight(); // reset location
deltaY = (int) (deltaY * -0.9); // slows down ball
}
}