xxxxxxxxxx
/* @pjs preload="fish.png"; */
PImage img;
PFont font;//システムでフォントのリストを作成する
String[] fontList = PFont.list();
int a = 10;
int xspeed0 = 1.5;//oのxスピード
int yspeed0 = 1.2;//oのyスピード
int xspeed1 = 1.4;//nのxスピード
int yspeed1 = 1.1;//nのyスピード
int xspeed2 = 1.5;//iのxスピード
int yspeed2 = 1.1;//iのyスピード
int xspeed3 = 1.3;//sのxスピード
int yspeed3 = 1.2;//sのyスピード
int xspeed4 = 1.6;//hのxスピード
int yspeed4 = 1.2;//hのyスピード
int xspeed5 = 1.2;//iのxスピード
int yspeed5 = 1.1;//iのyスピード
int x0 = 0;//oのx座標
int y0 = 0;//oのy座標
int x1 = 0;//nのx座標
int y1 = 0;//nのy座標
int x2 = 0;//iのx座標
int y2 = 0;//iのy座標
int x3 = 0;//sのx座標
int y3 = 0;//sのy座標
int x4 = 0;//hのx座標
int y4 = 0;//hのy座標
int x5 = 0;//iのx座標
int y5 = 0;//iのy座標
//初期化
void setup(){
size(500, 250);//サイズを変更
noStroke();//輪郭を描かない
frameRate(30);//再生速度を1秒30フレームに設定(初期値は1秒60フレーム)
smooth();//オブジェクトにアンチエイリアスをかける
fill(0);//オブジェクトを黒で塗りつぶす
img = loadImage("fish.png");
}
//ひたすら{ }で囲まれた中を繰り返す
void draw() {
background(#022555);//背景色
//マウスカーソル
if(mousePressed == true){
noCursor();
}else{
cursor(img, 0, 0);
}
//文字
font = createFont("Times New Roman", 50);//フォントを表示
textFont(font);
fill(#4989A0);//文字色を変更
text("o", x0, y0);//文字を描画
fill(#27747C);//文字色を変更
text("n", x1, y1);//文字を描画
fill(#01838E);//文字色を変更
text("i", x2, y2);//文字を描画
fill(#5CA8AF);//文字色を変更
text("s", x3, y3);//文字を描画
fill(#4E95A7);//文字色を変更
text("h", x4, y4);//文字を描画
fill(#67AFAA);//文字色を変更
text("i", x5, y5);//文字を描画
//文字終わり
//皇帝ペンギンを描画
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
noStroke();//枠線を描写しない
fill(0);//枠内を黒で塗りつぶす
ellipse(247, 160, 100, 100);//頭部の円
fill(100);//枠内を灰色で塗りつぶす
ellipse(220, 290, 150, 150);//左腹部
ellipse(280, 290, 150, 150);//右腹部
rotate(PI/13);//回転
ellipse(260, 190, 100, 200);//左胸部
popMatrix();//座標をスタックから取り出す
rotate(PI/-13);//回転する
ellipse(220, 307, 100, 200);//右胸部
fill(100);//枠内を灰色で塗りつぶす
popMatrix();//座標をスタックから取り出す
rotate(PI/6);//回転
ellipse(260, 130, 20, 100);//右の翼
popMatrix();//座標をスタックから取り出す
rotate(PI/-6);//回転
ellipse(173, 395, 10, 100);//左の翼
popMatrix();//座標をスタックから取り出す
fill(0);//枠内を黒色で塗りつぶす
ellipse(247, 155, 99, 20);//顔と体の境界を滑らかにする
ellipse(247, 158, 100, 30);//顔と体の境界を滑らかにする2
fill(255);//枠内を白色で塗りつぶす
ellipse(226, 160, 32, 50);//顔の右側白い部分
ellipse(269, 160, 32, 50);//顔の左側白い部分
ellipse(248, 170, 30, 30);//顔の真ん中の白い部分
fill(100);//枠内を灰色で塗りつぶす
rect(200, 168, 100, 20);//顔と体の接合部
fill(255);//枠内を白色で塗りつぶす
ellipse(247, 167, 73, 13);//顔と体の接合部2
fill(0);//枠内を黒色で塗りつぶす
ellipse(234, 153, 4, 7);//左目
ellipse(261, 153, 4, 7);//右目
fill(#FFC800);//枠内を黄色で塗りつぶす
quad(247, 162, 258, 158, 247, 154, 236, 158);//くちばし
//ペンギン終わり
if(mousePressed == true){
//キングペンギンのヒナを描画
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
pushMatrix();//(0, 0)を原点とする座標軸をスタックに格納
noStroke();//枠線を描写しない
fill(#905A2D);//枠内を茶色で塗りつぶす
ellipse(247, 160, 100, 100);//頭部の円
ellipse(220, 290, 150, 150);//左腹部
ellipse(280, 290, 150, 150);//右腹部
rotate(PI/13);//回転
ellipse(260, 190, 100, 200);//左胸部
popMatrix();//座標をスタックから取り出す
rotate(PI/-13);//回転する
ellipse(220, 307, 100, 200);//右胸部
popMatrix();//座標をスタックから取り出す
rotate(PI/6);//回転
ellipse(260, 130, 20, 100);//右の翼
popMatrix();//座標をスタックから取り出す
rotate(PI/-6);//回転
ellipse(173, 395, 10, 100);//左の翼
popMatrix();//座標をスタックから取り出す
ellipse(247, 155, 99, 20);//顔と体の境界を滑らかにする
ellipse(247, 158, 100, 20);//顔と体の境界を滑らかにする2
ellipse(226, 160, 32, 50);//顔の右側白い部分
ellipse(269, 160, 32, 50);//顔の左側白い部分
ellipse(248, 170, 30, 30);//顔の真ん中の白い部分
fill(0);//枠内を黒色で塗りつぶす
rotate(PI/-7);//回転する
ellipse(175, 245, 7, 2);//右目
popMatrix();//座標をスタックから取り出す
rotate(PI/7);//回転する
ellipse(270, 32, 7, 2);//左目
popMatrix();//座標をスタックから取り出す
fill(#FFC800);//枠内を黄色で塗りつぶす
quad(247, 160, 258, 156, 247, 152, 236, 156);//くちばし
//ペンギン終わり
}
image(img, mouseX, mouseY);
}
void mouseMoved(){ //マウス移動すると文字がカーソルについてくる
if( mouseX >= 190 && mouseX <= 320 && mouseY >= 140 && mouseY <= 250){
x0 += xspeed0;//x座標にxspeedの値を足す
y0 += yspeed0;//y座標にyspeedの値を足す
if( x0 >= width || x0 < 0){ xspeed0=-xspeed0; }//x0が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
if( y0 >= height || y0 < 0){ yspeed0=-yspeed0; }//y0が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
x1 += xspeed1;//x座標にxspeedの値を足す
y1 += yspeed1;//y座標にyspeedの値を足す
if( x1 >= width || x1 < 0){ xspeed1=-xspeed1; }//x1が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
if( y1 >= height || y1 < 0){ yspeed1=-yspeed1; }//y1が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
x2 += xspeed2;//x座標にxspeedの値を足す
y2 += yspeed2;//y座標にyspeedの値を足す
if( x2 >= width || x2 < 0){ xspeed2=-xspeed2; }//x2が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
if( y2 >= height || y2 < 0){ yspeed2=-yspeed2; }//y2が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
x3 += xspeed3;//x座標にxspeedの値を足す
y3 += yspeed3;//y座標にyspeedの値を足す
if( x3 >= width || x3 < 0){ xspeed3=-xspeed3; }//x3が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
if( y3 >= height || y3 < 0){ yspeed3=-yspeed3; }//y3が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
x4 += xspeed4;//x座標にxspeedの値を足す
y4 += yspeed4;//y座標にyspeedの値を足す
if( x4 >= width || x4 < 0){ xspeed4=-xspeed4; }//x4が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
if( y4 >= height || y4 < 0){ yspeed4=-yspeed4; }//y4が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
x5 += xspeed5;//x座標にxspeedの値を足す
y5 += yspeed5;//y座標にyspeedの値を足す
if( x5 >= width || x5 < 0){ xspeed5=-xspeed5; }//x5が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
if( y5 >= height || y5 < 0){ yspeed5=-yspeed5; }//y5が横幅より大きいかつ0より小さい時に、速度の正負が入れ替わる
}else{
font = createFont("Times New Roman", 50);//フォントを表示
textFont(font);
fill(#4989A0);//文字色を変更
text("o", mouseX, mouseY);//文字を描画
fill(#27747C);//文字色を変更
text("n", mouseX+3*a, mouseY);//文字を描画
fill(#01838E);//文字色を変更
text("i", mouseX+6*a, mouseY);//文字を描画
fill(#5CA8AF);//文字色を変更
text("s", mouseX+8*a, mouseY);//文字を描画
fill(#4E95A7);//文字色を変更
text("h", mouseX+10.3*a, mouseY);//文字を描画
fill(#67AFAA);//文字色を変更
text("i", mouseX+13.1*a, mouseY);//文字を描画
}
}