2020年5月28日 星期四

week 14

今天要繼續延續著前兩週的憤怒鳥~
一開始老師先給我們已經學到進度的程式碼。


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;
  }
}

拉的時候會有線,且放開可彈跳。



有了畫面後,遊戲內最重要的因素"音樂"就要顯現出來啦~!!!
匯入音樂且去processing引用庫文件內下載!!

首先開啟引用庫資料


下載完後按下File ->Examples



再點入PlayFile




接著打入程式碼

import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
  minim = new Minim(this);
  player=minim.loadFile("song.mp3");
  player.play();
}
void draw(){
  //要有這個,才會播放!!
}



當出現中間的小框框,就代表成功一半囉!!
接著將上面三行及中間三行貼入就好囉~~
那再將綠色小豬及綠色小豬音樂匯入,這個遊戲就成功了。

import ddf.minim.*;
Minim minim;
AudioPlayer player;
AudioPlayer player2;
PImage imgBird,imgPig;
void setup(){
  size(500,400);
  minim = new Minim(this);
  player=minim.loadFile("song.mp3");
  player.play();
  player2.minim.loadFile("pig,wav");

  imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer
  imageMode(CENTER);//以正中心,當座標
}
float []pigX=new float[20];
float []pigY=new float[20];
int pigN=0;//有幾隻豬
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;//之前的鳥在哪裡
boolean bMoving=false;//if(判斷) ex. if(bMoving)...
void draw(){
  background(255);//清背景
  for(int i=0;i<pigN;i++)
  {
    image(imgPig,pigX[i],pig[j],100,100);
  }
  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(mouseButton==RIGHT){
    player2.rewind();//倒到最前面
    player2.play();//再播!!!!!
    pigX[pigN]=mouseX;
    pigY[pigY]=mouseY;
    pigN++;
  }
  if( dist(mouseX,mouseY, birdX,birdY)<50){
    oldX=birdX; oldY=birdY;
    bMoving=true;///按下去時,如果有按到,才能動它
  }
}
void mouseDragged(){//按下去,才會開始動
  if(bMoving) {//有按到,才能動它
    birdX=mouseX; birdY=mouseY;
  }
}




來到了憤努鳥的最後一週,前兩週做完了紅色憤怒鳥的拉線,接著就加入了綠色小豬進入這個遊戲!!經過三個星期終於告一段落了~也終於知道如何做出小時候喜歡的憤怒鳥遊戲了~!!

沒有留言:

張貼留言