動く円 (左右に動く)に、もう1つ円 (上下に動く)、
さらに 斜めに動く円を作りました。
出来上がった!!
ただの 安っぽいスクリーンセーバーだ ww
⭐️ 3つの円が動く
//◯動く方向を変えてみよう
//◯方向の変数を作ろう
//上下方向に動く球を新たに作ろう
import java.awt.*;
import java.awt.event.*;
class Slanting1{
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 上方向
int cx3 = 500;
int cy3 = 0;
int dire3 = 5; //5右下 6右上 7左上 8左下
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;
}
switch(dire3){ //斜めに動く球の方向転換
case 5: //右下の場合
cx3 = cx3 + 2; cy3 = cy3 + 2;
if(cx3>600 && cy3>400) dire3 = 7;
if(cx3>600 && cy3<400) dire3 = 8;
if(cx3<600 && cy3>400) dire3 = 6;
break;
case 6: //右上の場合
cx3 = cx3 + 2; cy3 = cy3 - 2;
if(cx3>600 && cy3<0 ) dire3 = 8;
if(cx3<600 && cy3<0 ) dire3 = 5;
if(cx3>600 && cy3>0 ) dire3 = 7;
break;
case 7: //左上の場合
cx3 = cx3 - 2; cy3 = cy3 - 2;
if(cx3<0 && cy3<0 ) dire3 = 5;
if(cx3<600 && cy3<0 ) dire3 = 8;
if(cx3<0 && cy3>0 ) dire3 = 6;
break;
case 8: //左下の場合
cx3 = cx3 - 2; cy3 = cy3 + 2;
if(cx3<0 && cy3>400) dire3 = 5;
if(cx3<0 && cy3<400) dire3 = 5;
if(cx3>0 && cy3>400) dire3 = 7;
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);
g.setColor(Color.YELLOW);
g.fillOval(cx3-30, cy3-30, 60, 60);
}
}
class WinListener extends WindowAdapter{
public void windowClosing(WindowEvent e){ System.exit(0); }
}
・斜めに動く円ばかり救った場合、
条件分岐の部分は1つにまとめられるのかな。
・円ではなく ドット絵を動かしてみたい。
・マウスを押すと 方向を変えたり出来るのかな。
・金魚鉢のプログラミングを作りたい。
これらは 今すぐには出来ないな、Java入門教室をもっと勉強しよう。
今日の教訓
やりたいことが、いっぱい。
0 件のコメント:
コメントを投稿