2020年5月28日 星期四

PROCESSING-憤怒鳥彈來彈去

PROCESSING

憤怒鳥彈來彈去

前情提要:讓我們逐步來解析憤怒鳥這個遊戲的程式碼吧
ㄉㄨㄞˉㄉㄨㄞˉㄉㄨㄞˇㄉㄨㄞˉㄉㄨㄞˉㄉㄨㄞˇㄉㄨㄞˉㄉㄨㄞˉ


這是程式碼
先,
 
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;如果(boolean)布林變數,成立or不成立
 
二.
void draw()
{
  background(255);背景(白色)
  image(imgBird,birdX,birdY,100,100);畫出鳥的大小100*100
  if(bMoving) line(mouseX,mouseY,oldX,oldY);/如果有選到,拉動時會畫線  
(從原本的位置滑鼠拖移的位置)
像這樣
 
  birdX += vx; 憤怒鳥移動的速度
  birdY += vy;
  if(birdX>500-50||birdX<50) vx=-vx;如果憤怒鳥碰到邊界會反彈
  if(birdY>400-50||birdY<50) vy=-vy;
放開之後就會ㄉㄨㄞˊㄉㄨㄞˊ
 
}
 
三. 
void mouseReleased() 滑鼠釋放
{
      bMoving=false;不再移動=>可以彈射出去
      vx=(oldX-mouseX)/10; (舊的位置減掉滑鼠位置)
      vy=(oldY-mouseY)/10;vx,vy代表彈跳的速度
} 
 
 四. 
void mousePressed() 滑鼠按下,判斷有沒有選擇到憤怒鳥
{
  if(dist(mouseX,mouseY,birdX,birdY)<50)距離小於50
{
    bMoving=true;開始移動憤怒鳥
    oldX=birdX; 先儲存憤怒鳥舊的位置
    oldY=birdY;作為拉線的參考點
  }
}
 五.
void mouseDragged()滑鼠拖移 
{
      if(bMoving)開始移動憤怒鳥
    {
        birdX=mouseX; 憤怒鳥的位置在滑鼠位置
        birdY=mouseY;
     }
}
心得: 學習了憤怒鳥的彈跳程式覺得很有趣,充分的使用了滑鼠選擇和拖移的作用.
 

沒有留言:

張貼留言