程式教學
放入圖片,憤怒鳥跟著滑鼠。
加上彈簧線。
將憤怒鳥圖片對準件投中間。
PImage imgBird,imgPig;
void setup(){
size(800,600);
imgBird=loadImage("angryBird.png");
imgPig=loadImage("pig.png");
imageMode(CENTER); //滑鼠可設在圖片中間
}
float birdX=400,birdY=300;
float birdVX=0,birdVY=0;
float birdAX=0,birdAY=0;
void draw(){
background(255);
line(birdX,birdY,400,300);
image(imgPig,400,300,100,100);
image(imgBird,birdX,birdY,100,100);
birdX+=birdVX; //重力加上速度
birdY+=birdVY;
birdVX+=birdAX; //速度加上加速度
birdVY+=birdAY;
}
void mouseDragged(){
birdX=mouseX; birdY=mouseY;
birdVX=birdVY=birdAX=birdAY=0;
}
void mouseReleased(){
birdVX=(400-mouseX)/10.0; //反彈力
birdVY=(300-mouseY)/10.0;
birdAY=0.98; //重力
}
PImage imgBird,imgPig;
void setup(){
size(800,600);
imgBird=loadImage("angryBird.png");
imgPig=loadImage("pig.png");
imageMode(CENTER);
}
float birdX=400,birdY=300;
float birdVX=0,birdVY=0;
float birdAX=0,birdAY=0;
float pigX=700,pigY=100;
boolean pigAlive=true;
void draw(){
background(255);
if(pigAlive) image(imgPig,pigX,pigY,100,100);
image(imgBird,birdX,birdY,100,100);
if(dist(pigX,pigY, birdX,birdY)<100){
pigAlive=false; }
line(birdX,birdY,400,300);
birdX+=birdVX; birdY+=birdVY;
if(birdX<50) {birdX=50; birdVX=-birdVX;}
if(birdX>width-50) {birdX=width-50; birdVX=-birdVX;}
if(birdX<50) {birdY=50; birdVY=-birdVY;}
if(birdY>height-50) {birdY=height-50; birdVY=-birdVY;}
//憤怒鳥碰到邊框會反彈
birdVX+=birdAX; birdVY+=birdAY;
birdVX*=0.997; birdVY*=0.997;
}
void mouseDragged(){
birdX=mouseX; birdY=mouseY;
birdVX=birdVY=birdAX=birdAY=0;
}
void mouseReleased(){
birdVX=(400-mouseX)/10.0;
birdVY=(300-mouseY)/10.0;
birdAY=0.98;
}
作業二 : 小朋友下樓梯
小朋友遇到方塊牆不會往下墜。
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++;
}
沒有留言:
張貼留言