2020年5月21日 星期四

憤怒鳥


基礎:如何讓鳥出現及有一條線去拉他的感覺
PImage imgBird;
void setup(){
  size(500,400);
  imgBird=loadImage("bird.png"); \\\圖檔如果沒有放好會當掉
  imageMode(CENTER);\\\以正中心當作標
}
float birdX=100,birdY=300,oldX,oldY;\\\之前的鳥在哪
void draw(){
  background(255);清背景
  image(imgBird, birdX,birdY, 100,100);\\\不能一直跟著滑鼠動,改用bird
  if(mousePressed) line(birdX,birdY, oldX,oldY);
}
void mousePressed(){\\\按下去才開始動
  oldX=birdX; oldY=birdY;
}
void mouseDragged(){\\\按下去才開始動
  birdX=mouseX; birdY=mouseY;
}

讓鳥可以碰撞反彈

如何讓音樂載入背景:
使用MP3在記事本打開,複製程式碼:
PImage imgBird;
void setup(){
  size(500,400);
  imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer
  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, birdX,birdY,100,100);//不能一直跟著mouse動,改用birdX,birdY
  if(bMoving) line(birdX,birdY, oldX,oldY);//有按到,才能動它
  birdX+=vx; birdY+=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; vy=(oldY-mouseY)/10;// 0.1倍
  }
}
void mousePressed(){//按下去,才會開始動
  if( dist(mouseX,mouseY, birdX,birdY)<50){
    oldX=birdX; oldY=birdY;
    bMoving=true;///按下去時,如果有按到,才能動它
  }
}
void mouseDragged(){//按下去,才會開始動
  if(bMoving) {//有按到,才能動它
    birdX=mouseX; birdY=mouseY;
  }
}




沒有留言:

張貼留言