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