2017年10月2日 星期一

Week 04 : 普通的ㄒㄆ的普通的筆記


今日目標 :

1. 讓上周的angrybird 的豬,可以多一點
2. 加入聲音

重要概念 : 

1.Boolean 函式
2. Sound 文件


一、做出很多隻豬





二、 更改讓豬被碰到就消失的程式碼,因為float的部分被改成boolean函數



程式碼: 

PImage imgBird, imgPig;
float birdX=100,birdY=500;
float birdVX=0 , birdVY=0;
float birdAX=0 , birdAY=0;
float [][]pigx=new float[5][4];
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++){
    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++){
    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(imgPig,400,300,100,100);
  image(imgBird, birdX,birdY,100,100);
 /* if(dist(pigx,pigy,birdX,birdY)<100)
  {
    pigAlive=false;
  }*/
  //line(birdX,birdY,400,300);
  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;

}


 (1) 直線運動, (2) 拋物線




三、讓加上音效

1.速寫本 → 引用庫文件 → 添加庫文件



2.下載 "Minim" + " Sound "


3.抓入剛才下載的 " Sound "



4. 拖拉音檔進入程式中,資料夾就會自動出現 " data"  這個資料夾,並且裡頭有剛才拖曳的音檔



程式碼:

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


沒有留言:

張貼留言