我正在尝试创建一个简单的动画,使 GOval 球从图形窗口的底部和顶部反弹,一次又一次地向上和向下,直到我退出窗口。问题是我不明白如何让球识别图形窗口的底部并开始以另一种方式反弹。换句话说,球永远不会从地板上反弹,它只是不断下落,最终从屏幕底部消失。
只要i < STEPS,球就应该向下移动,这是思考这个问题的正确方法吗?我不明白球弹起来然后又弹下来的条件应该是什么。
import acm.program.*;
import acm.graphics.*;
public class BouncingBall extends GraphicsWindow{
public void run(){
GOval ball = new GOval(0, 0, OVAL_SIZE, OVAL_SIZE);
ball.setFilled(true);
add(ball);
int dx = 0;
int dy = 1;
while(true) {
int i = 0;
if ( i < STEPS) {
ball.move(dx, dy);
pause(PAUSE_TIME);
}
if (??) {
ball.move(dx, - dy);
pause(PAUSE_TIME);
}
i++;
}
}
private static final STEPS = 1000;
private static final OVAL_SIZE = 25;
private static final PAUSE_TIME = 7;
}