3

「跳ねるボール」スクリーンセーバータイプのプログラムを作成しようとしています。そして、より多くのボール/楕円をプログラミングするのが難しく、ランダムな開始点を持つようにしています。それが可能であり、複雑になりすぎない場合は、この問題に対する私のアプローチをそのままにしておきたいと思います。私の最初の質問は、私はプログラミングが初めてです。この方法が完全に間違っている場合は、教えてください。回答ありがとうございます。

public class Game {

  public static void main(String[] args) {
    new Spillvindu();
  }
}

public class Spillvindu extends JFrame {

  private Anothergame game;

  Spillvindu() {
    add(game = new Anothergame());
    game.lagSpillVindu();
    pack();
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setVisible(true);
  }

  public Dimension getPreferredSize() {
    return new Dimension(800, 600);
  }
}

public class Anothergame extends JComponent implements ActionListener {

  void lagSpillVindu() {
    Timer t = new Timer(10, this);
    t.start();
  }
  private int ballYSpeed = 5;

  private int ballXSpeed = 5;

  private int ballX;

  private int ballY;

  private static Random random = new Random(800);

  public void paintComponent(Graphics g) {
    g.setColor(Color.CYAN);
    g.fillRect(0, 0, 800, 600);
    g.setColor(Color.black);
    g.fillOval(ballX, ballY, 40, 40);
  }

  public void actionPerformed(ActionEvent arg0) {
    ballX = ballX + ballXSpeed;
    ballY = ballY + ballYSpeed;
    if (ballY >= 520) {
      ballYSpeed = - 5;
    }
    if (ballX >= 730) {
      ballXSpeed = - 5;
    }
    if (ballX <= 0) {
      ballXSpeed = 5;
    }
    if (ballY <= 0) {
      ballYSpeed = 5;
    }
    repaint();
  }
}
4

1 に答える 1