341069I 高原 詩朗
使用した画像
341069I
高原詩朗
月と雪だるまの絵です。雪はforをつかって画面一面に散らせてみました。
マウスをクリックするとあめがでます。
Snow Falls ボタンを押すと雪が下に落ちて行きます。
Clear Appearボタンで、バックの雪を消したり現したり出来ます。
// //341069I //高原詩朗 //月と雪だるまの絵です。雪はforをつかって画面一面に散らせてみました。 //マウスをクリックするとあめがでます。 //Snow Falls ボタンを押すと雪が下に落ちて行きます。 //Clear Appearボタンで、バックの雪を消したり現したり出来ます。 import java.awt.*; import java.io.*; import java.awt.event.*; import java.util.*; import java.applet.*; class Sizuku{ // mouseをクリックしたX座標,Y座標を int で保持する. public int x,y; // Sizukuのコンストラクタ public Sizuku(int x1,int x2){ x=x1; y=x2; } } //keyListenerと MouseListenerを使う class Falls extends Canvas implements KeyListener, MouseListener{ //Imageクラスの imageを定義 Image image; //雪が降るときに少し動くという乱数sonwxの作成準備 Random r=new Random();int snowx=0; //可変配列としてをrain作成 Vector rain; //雪があるかないかを判定する引数nclear boolean nclear = true; //雪の降り方に用いる。 int k=0 , t = 0; public Falls(){ super(); image=Toolkit.getDefaultToolkit().getImage("rain.png"); addKeyListener(this); addMouseListener(this); setSize(400,400); rain= new Vector(); } Image offScreenImage; Graphics offScreenGraphics; public void update(Graphics g){ if(offScreenImage==null){ offScreenImage=createImage(400,400);// オフスクリーンイメージを600x400のサイズで作成 offScreenGraphics=offScreenImage.getGraphics(); // オフスクリーンイメ-ジに描画するための Graphics オブジェクト } paint(offScreenGraphics); // 次の画面のイメージを作る. g.drawImage(offScreenImage,0,0,this); // イメージ本物のスクリーンに書込む } public void paint(Graphics g){ //背景色 g.setColor(Color.black); g.fillRect(0,0,400,101); for(int i = 0 ; i < 70 ; i++){ g.setColor(new Color(0,0,20+i)); g.fillRect(0,100+i,400,100+i); } //地面の雪 for(int i = 0 ; i < 70 ; i++){ g.setColor(new Color(160,160,170+i)); g.fillRect(0,190+i,400,190+i); } //道 g.setColor(new Color(100,100,100)); int[] xs0={50,100,280,150}; int[] ys0={190,190,400,400}; g.fillPolygon(xs0,ys0,4); //月 g.setColor(Color.yellow); g.fillOval(50,90,30,30); g.setColor(Color.black); g.fillOval(40,80,30,30); //雪だるまん //からだ for(int i = 0 ; i < 50 ; i++){ g.setColor(new Color(150+2*i,150+2*i,200+i)); g.fillOval(250+i,250+i,100-2*i,100-2*i); } for(int i = 0 ; i < 25 ; i++){ g.setColor(new Color(150+4*i,150+4*i,200+2*i)); g.fillOval(270+i,180+i,80-16/5*i,80-16/5*i); } //帽子 g.setColor(Color.blue); int[] xs1={338,335,295,310}; int[] ys1={152,190,180,145}; g.fillPolygon(xs1,ys1,4); //目 g.setColor(Color.black); g.fillOval(285,200,8,8); g.fillOval(305,203,8,8); //ゆきだるまんここまで //降ってる雪 //ncleartrueがなら雪を降らす if(nclear){ g.setColor(new Color(210,210,255)); for(int i = 0 ; i < 400 ; i = i+20){ for(int j = 0 ; j < 400 ; j = j+20){ g.fillOval(i+snowx, j+k, 3,3); g.fillOval(i+10+snowx, j+10+k, 3,3); } } } //絵を表示させる int size = rain.size(); for(int p= 0 ; p