このブログを検索

2019年9月25日水曜日

Java入門教室 Lesson11-6 図形を動かす ②

「Java入門教室」 図形を動かすプログラム。

 動く円 (左右に動く)に、もう1つ円 (上下に動く)物を
 新たに 作りました。
 


 動く物って やっぱり楽しいね。
 ボーッと見てしまうよ。

⭐️ 2つの円が動く
//◯動く方向を変えてみよう
//◯方向の変数を作ろう
//上下方向に動く球を新たに作ろう

import java.awt.*;
import java.awt.event.*;
class Main3{
    public static void main(String[] args){
        MyWindow mw = new MyWindow();
        Thread th = new Thread(mw);
        th.start();
    }
}

class MyWindow extends Frame implements Runnable {
    int cx1 = 0;
    int cy1 = 200;
    int dire1 = 1; //1 右方向  2 左方向
    
    int cx2 = 200;
    int cy2 = 0;
    int dire2 = 3; //3 下方向  4 上方向
    
    MyWindow(){
        setTitle("2つの円を動かす");
        setSize(600, 400);
        setVisible(true);
        addWindowListener( new WinListener() );
    }
    
    public void run() {
        while(true) {
            switch(dire1) {  //左右に動く球の方向転換
                case 1:
                    cx1 = cx1 + 2;
                    if(cx1>600) dire1 = 2; //左方向に転換
                    break;
                case 2:
                    cx1 = cx1 - 2;
                    if(cx1<0) dire1 = 1; //右方向に転換
                    break;
            }
            switch(dire2) { //上下に動く球の方向転換
                case 3:
                    cy2 = cy2 + 2;
                    if(cy2>400) dire2 = 4; //上方向に転換
                    break;
                case 4:
                    cy2 = cy2 - 2;
                    if(cy2<0) dire2 = 3; //下方向に転換
                    break;
            }
            
            repaint();
            try{ Thread.sleep(15); } catch(InterruptedException e) {}
        }
    }
    
    public void paint(Graphics g) {
        g.setColor(Color.LIGHT_GRAY);
        g.fillRect(0, 0, 600, 400);
        g.setColor(Color.GREEN);
        g.fillOval(cx1-30, cy1-30, 60, 60);
        g.setColor(Color.PINK);
        g.fillOval(cx2-30, cy2-30, 60, 60);
    }
}

class WinListener extends WindowAdapter{
    public void windowClosing(WindowEvent e){ System.exit(0); }

}

斜めに動く円を付け加えてみようかな
 (↑難易度 高め)

今日の教訓
 楽しいぞ〜〜〜

0 件のコメント:

コメントを投稿