0

我正在尝试编写一个程序,该程序可以在一个窗口内连续弹跳一个球以进行家庭作业。这是我正在尝试做的一个简短的youtube 视频。由于现在正在编写程序,所以球没有移动,我不明白为什么。

我有两个问题:

  1. 为什么球不动,我做错了什么?
  2. 我应该使用 >= 和 <= 运算符而不是我在 IF(条件)中使用的 > 和 < 运算符吗?

import acm.program.*;
import acm.graphics.*;

publc class BallBouncing extends GraphicsProgram{
public void run(){

   GOval ball = new GOval(getWidth() / 2, getHeight() / 2, OVAL_SIZE, OVAL_SIZE);
   ball.setFilled(true);
   add(ball);

   double dx = getWidth() / N_STEPS;
   double dy = getHeight() / N_STEPS;

   while(true){
       ball.move(dx, dy);
       pause(PAUSE_TIME);

        if (ball.getY() > getHeight() - OVAL_SIZE) { dy = dy * -1;}
        if (ball.getX() > getWidth() - OVAL_SIZE) { dx = dx * -1;}
        if (ball.getY() < 0 + OVAL_SIZE) { dy = dy * -1;}
        if (ball.getX() < 0 + OVAL_SIZE) { dx = dx * -1;}

      }
    }  

 private static final int STEPS = 1000;
 private static final int PAUSE_TIME = 5;
 private static final int OVAL_SIZE = 25;

 }
4

0 回答 0