目標一:做出angry bird遊戲(進階)
1.利用(Week03-1.3)的概念再做延伸
程式碼:
PImage imgBird, imgPig;
float birdX=100,birdY=500;
float birdVX=0 , birdVY=0;
float birdAX=0 , birdAY=0;
float [][]pigx=new float[5][4]; //透過陣列方式增加Pig
float [][]pigy=new float[5][4];
boolean [][]pigAlive=new boolean[5][4];
void setup()
{
size (800,700);
imgBird=loadImage("bird.png");
imgPig=loadImage("pig.png");
imageMode(CENTER);
for(int i=0;i<5;i++)//將陣列新增的pig,貼入指定的位置上
{
for(int j=0;j<4;j++)
{
pigx[i][j]=700-i*100; pigy[i][j]=100+j*100;
pigAlive[i][j]=true;
}
}
}
void draw()
{
background(255);
for(int i=0;i<5;i++) //碰到豬就消失的程式碼,因為float被改成boolean函數
{
for(int j=0;j<4;j++)
{
if(dist(pigx[i][j],pigy[i][j],birdX,birdY)<100)
{
pigAlive[i][j]=false;
}
if(pigAlive[i][j])
image(imgPig,pigx[i][j],pigy[i][j],100,100);
}
}
image(imgBird, birdX,birdY,100,100);
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 = (100-mouseX)/ 10.0;
birdVY = (400-mouseY)/ 10.0;
birdAY = 0.98;
}
沒有留言:
張貼留言