在遊戲一開始,我們先匯入憤怒鳥的圖片,畫出一隻憤怒鳥!!
PImage imgBird;
void setup()
{
size (500,400);
imgBird=loadImage("bird.png");
imageMode(CENTER);//以正中心當座標
}//圖檔如果沒有放好,會當掉potinter
void draw()
{
background (255);//清背景
image(imgBird,mouseX,mouseY,100,100);
}
*缺失:鳥無法一直動,要等mousePressed之後才可以跟著動
程式碼完成後~
噹噹! 一隻可愛的憤怒鳥出現囉!!
憤怒鳥出現後,接著,這個遊戲內我們需要用一條線去顯現出憤怒鳥拉的方向。
所以下一個步驟,開始畫線吧!!
PImage imgBird;
void setup()
{
size (500,400);
imgBird=loadImage("bird.png");
imageMode(CENTER);//以正中心當坐標
}//圖檔如果沒有放好,會當掉pointer
float birdX=100,birdY=300,oldX,oldY;之前的鳥在哪裡
void draw()
{
background (255);//清背景
image(imgBird,mouseX,mouseY,100,100);
if (mousePressed) line (birdX,birdY,oldX,oldY);
}
void mousePressed()
{//按下去,才會開始動
oldX=birdX;oldY=birdY;
}
void mouseDragged()
{//按下去,才會開始動
birdX=mouseX;
birdY=mouseY;
}
一條線就這樣愉快的出來了!!!
有了線也有了憤怒鳥,那就只差最後一個步驟囉!!
我們要讓憤怒鳥咻一下彈出去~~~
PImage imgBird;
void setup()
{
size(500,400);
imgBird=loadImage("bird.png");
imageMode(CENTER);
}
float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0;之前的鳥在哪裡
boolean bMoving=false;//if(判斷) ex.if(bMoving)...
void draw()
{
background (255);//清背景
image(imgBird,mouseX,mouseY,100,100);//不能一直跟著mouse動,改用birdX,birdY
if(bMoving) line(birdX,birdY,oldX,oldY);//有按到,才能動它
birdX+=vx;bird+=vy;//鳥要照速度去飛!!
if(birdX>450||birdX<50)vx=-vx*0.95;//撞到邊界會改變方向,改變為相反的方向
if(birdY>350||birdY<50)vy=-vy*0.95;
}
void mouseReleased()
{
if(bMoving){
bMoving=false;//放開時,就不能動了
vx=(oldX-mouseX)/10;//0.1倍
vx=(oldX-mouseX)/10;
}
}void mousePressed()
{//按下去,才會開始動
if(dist(mouseX,mouseY,birdX,birdY)<50){
oldX=birdX;oldY=birdY;
bMoving=true;//按下去時,如果有按到,才能動它
}
}
void mouseDragged()
{//按下去,才會開始動
if(bMoving){//有按到,才能動它
birdX=mouseX;
birdY=mouseY;
}
}
經過這些繁雜的程式碼後~
憤怒鳥終於可以如遊戲一般發射且飛射出去囉~!!
今天延續著上週的憤怒鳥遊戲,這週學的是如何畫出拉憤怒鳥時的那條線及將憤怒鳥發射出去,經過了一番努力後終於完成了!!也對寫遊戲更加有信心了~!!
沒有留言:
張貼留言