●製作憤怒鳥
Step1:先把圖片繪製進去,其中一個可以跟著滑鼠
PImage imgCat, imgP;
void setup(){
size(800,600);
imgCat=loadImage("c.jpg");
imgP=loadImage("p.png");
}
void draw(){
background(255);
image(imgCat, 400,300);
image(imgP, mouseX, mouseY);
}
Step2:改成壓著才能移動的滑鼠
PImage imgCat, imgP;
void setup(){
size(800,600);
imgCat=loadImage("c.jpg");
imgP=loadImage("p.png");
}
float PX=400, PY=300;
void draw(){
background(255);
image(imgCat, 400,300);
image(imgP, PX, PY);
}
void mouseDragged(){
PX=mouseX; PY=mouseY;
}
Step3:靜者恆靜,動者恆動
PImage imgCat, imgP;
void setup(){
size(800,600);
imgCat=loadImage("c.jpg");
imgP=loadImage("p.png");
imageMode(CENTER);
}
float PX=400, PY=300;
float PVX=0, PVY=0;
void draw(){
background(255);
image(imgP, PX, PY,100,100);
line(PX,PY,400,300);
PX+=PVX;
PY=PVY;
}
void mouseDragged(){
PX=mouseX;
PY=mouseY;
}
void mouseReleased(){
PVX=(400-mouseX)/100.0;
PVY=(300-mouseY)/100.0;
}
Step4:加速度
PImage imgCat, imgP;
void setup(){
size(800,600);
imgCat=loadImage("c.jpg");
imgP=loadImage("p.png");
imageMode(CENTER);
}
float PX=400, PY=300;
float PVX=0, PVY=0;
float PAX=0,PAY=0;
void draw(){
//background(255);
image(imgP, PX, PY,100,100);
line(PX,PY,400,300);
PX+=PVX;
PY=PVY;
PVX+=PAX;
PVY+=PAY;
}
void mouseDragged(){
PX=mouseX;
PY=mouseY;
PVX=PVY=PAX=PAY=0;
}
void mouseReleased(){
PVX=(400-mouseX)/10.0;
PVY=(300-mouseY)/10.0;
PAY=0.98;
}
Step5:擊中目標讓目標消失
PImage imgCat, imgP;
void setup(){
size(800,600);
imgCat=loadImage("c.jpg");
imgP=loadImage("p.png");
imageMode(CENTER);
}
float PX=400, PY=300;
float PVX=0, PVY=0;
float PAX=0,PAY=0;
float CatX=700,CatY=100;
boolean catAlive=true;
void draw(){
background(255);
if(catAlive) image(imgP, PX, PY,100,100);
image(imgCat, CatX, CatY,100,100);
if(dist(PX,PY,CatX,CatY)<100){
catAlive=false;
}
line(PX,PY,400,300);
PX+=PVX;
PY=PVY;
PVX+=PAX;
PVY+=PAY;
}
void mouseDragged(){
PX=mouseX;
PY=mouseY;
PVX=PVY=PAX=PAY=0;
}
void mouseReleased(){
PVX=(400-mouseX)/10.0;
PVY=(300-mouseY)/10.0;
PAY=0.98;
}
Step6:
●小朋友下樓梯
Step1:輸入程式碼
void setup(){
size(600,500);
}
int boardX=227,boardY=400;
int kidX=300,kidY=250;
void draw(){
background(0);
rect(boardX,boardY,200,50);
rect(kidX,kidY,50,50);
if(kidX>boardX-50 && kidX<boardX+200 && kidY>boardY-50){
}else kidY++;
kidX=mouseX;
}
沒有留言:
張貼留言