一 憤怒鳥
void setup(){
size(800,600); //視窗大小
imgBird=loadImage("bird.png"); // 鳥的圖檔
imgPig=loadImage("pig.png"); //豬的圖檔
}
float birdVX=0,birdVY=0; //鳥的速度設定
float birdX=400,birdY=300; //鳥的圖檔位置
void draw(){
background(255); //背景顏色
image(imgPig,400,300,50,50); // 豬的位址及大小
image(imgBird,birdX,birdY,55,55); // 鳥的位址及大小
line(birdX,birdY,400,300); //輔助線
birdX +=birdVX; //鳥的X位置+鳥的速度
birdY +=birdVY; //鳥的Y位置+鳥的速度
}
void mouseDragged(){
birdX=mouseX; //鳥的X位置移動到滑鼠的X位置
birdY=mouseY; //鳥的Y位置移動到滑鼠的Y位置
}
void mouseReleased(){
birdVX=(400-mouseX)/100.0; // 鳥的X速度
birdVY=(300-mouseY)/100.0; //鳥的Y速度
}

PImage imgBird, imgPig;
void setup(){
size(800,600);
imgBird=loadImage("bird.png");
imgPig=loadImage("pig.png");
imageMode(CENTER); //上圖的線會在圖片的左上角,為了更方便理解必須將線放在圖的中間
}
float birdVX=0,birdVY=0;
float birdX=400,birdY=300;
float pigX=700,pigY=100;
float birdAX=0,birdAY=0;
boolean pigAlive=true; // 判斷圖片是否存在
void draw(){
background(255);
if(pigAlive) image(imgPig,pigX,pigY,50,50);
image(imgBird,birdX,birdY,55,55);
if(dist(pigX,pigY,birdX,birdY)<100){
pigAlive=false; // 豬和鳥的位置<100,豬會消失
}
line(birdX,birdY,400,300);
birdX +=birdVX;
birdY +=birdVY;
if(birdX<27.5){birdX=27.5; birdVX=-birdVX;} //地圖X左邊邊界和鳥圖片的一半大小
if(birdX>width-27.5){birdX=width-27.5;birdVX=-birdVX;} //地圖X右邊邊界和鳥的圖片一半大小
if(birdY<27.5){birdY=27.5;birdVY=-birdVY;} //地圖Y上面邊界和鳥圖片的一半大小
if(birdY>height-27.5){birdY=height-27.5;birdVY=-birdVY;} //地圖Y下面邊界和鳥圖片的一半大小
birdVX +=birdAX;
birdVY +=birdAY;
birdVX*=0.997; //鳥的X速度空氣阻力
birdVY*=0.997; //鳥的Y速度空氣阻力
}
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; //鳥的Y加速度(相當於重力加速度)
}


二 小朋友下樓梯
//小朋友遇到方塊牆不會往下墜
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++;
}

沒有留言:
張貼留言