プログラミング言語javaについての質問です。
フレーム内をボールが直線運動し,辺で跳ね返る軌跡を描画するプログラムを作成しなさい.上下左右の四方全ての辺にボールがぶつかるまで描画を続けること. フレームの辺にぶつかったときには,ボールの大きさ,色,間隔(速度)などを適当に変化させることでオリジナリティを出すこと.プログラム実行中にフレームのサイズを変えた場合もそれに応じた描画にすること.
###エラー
どうしてもxの値を動かすことができずに困っています。上と下にはボールを当てられているので、右と左に当てるプログラムを作りたいです。
私が作ったソースコード
java
1import java.awt.Color; 2import java.awt.Graphics; 3 4import javax.swing.JFrame; 5import javax.swing.JPanel; 6 7public class R3_1 extends JPanel { 8 public void paintComponent(Graphics g){ 9 g.setColor(new Color(220, 70, 240)); 10 int y = 80, dy = 30; 11 for(int i = 0; i < 20; ++i){ 12 int x = 50 + i*50; 13 g.fillOval(x, y, 40, 40); 14 if(y+80 > getHeight()){ 15 dy = -dy; 16 g.setColor(new Color(200, 80, 100)); 17 } 18 if(y < 50){ 19 dy = 0; 20 g.setColor(new Color(100, 50, 200)); 21 } 22 if(y > getWidth() ){ 23 dy = 0; 24 int dx = 50; 25 dx = -dx; 26 } 27 28 y = y + dy; 29 } 30 } 31 public static void main(String[] args){ 32 JFrame app = new JFrame(); 33 app.add(new R3_1()); 34 app.setSize(400, 300); 35 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 36 app.setVisible(true); 37 } 38 39} 40
試したこと
xの値をif文の中で変えたりしましたが、一向に変わることがなく左にボールを動かしたくても、動かないので困っています。
本当にわからなくてここから進まないので、回答よろしくお願いします。