2017年10月2日 星期一

17/10/02 德宇的筆記Week04

目標一:做出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;
}


2.新增音效



步驟一:按以下路徑點開:速寫本->引用庫文件->添加庫文件






步驟二:下載 "Minim" + " Sound "






步驟三:將音樂檔案拖入程式內




程式碼:

import processing.sound.*;
SoundFile sound;
void setup()
{
  size (800,600);
  sound = new SoundFile(this,"Battle Theme.mp3");
  sound.play();
  sound.loop();
}

沒有留言:

張貼留言