今日目標 :
1.做出angrybird遊戲
2.小朋友下樓梯
重要概念 :
1. mouseReleased() :滑鼠放開
一、先找兩張圖,並將他們輸入至程式中
若圖片太大,可以在 image 函式後,加上(100,100)
二、加上 mouseReleased 和 mouseDragged 結合牛頓第二定律作出彈出的狀態
三、加上AX與AY 讓鳥能夠受到重力掉下來
四、讓鳥撞到豬,ˊ豬會消失 (pigAlive)

程式碼:
PImage imgBird, imgPig;
void setup()
{
size (800,600);
imgBird=loadImage("bird.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(imgPig,400,300,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;
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,700);
imgBird=loadImage("bird.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(imgPig,400,300,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(birdY<50) {birdY=50; birdVY =-birdVY;}
if(birdY>width-50) {birdY=width-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;
}
沒有留言:
張貼留言