2017年10月16日 星期一

Week04 享翊的上課筆記

優化憤怒鳥
程式碼:
PImage imgBird, imgPig;
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,600);
  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;
  }
}
}
float birdX = 400, birdY = 300;
float birdVX = 0, birdVY = 0;

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(imgBird, birdX, birdY, 100, 100);

  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>height-50){birdY=height-50; birdVY= -birdVY;}


  birdVX += birdAX;
  birdVY += birdAY;
  birdVX *= 0.995;
  birdVY *= 0.995;
}

void mouseDragged(){
  birdX=mouseX;
  birdY=mouseY;
  birdVX=birdVY=birdAX=birdAY=0;

}
void mouseReleased(){
  birdVX = (400-mouseX)/10.0;
  birdVY = (300-mouseY)/10.0;
  birdAY = 0.98;
}


老師第二次解釋矩陣排列圓圈
float birdX=100,birdY=400;
float [][]pigx=new float[5][4];
float [][]pigy=new float[5][4];
boolean [][]pigAlive=new boolean[5][4];
void setup(){
  size(800,600);
  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()
{
  
  for(int i=0;i<5;i++)
  {
    for(int j=0;j<4;j++)
  {
    fill(255);ellipse(pigx[i][j],pigy[i][j],100,100);
  }
  }
  fill(0);ellipse(birdX,birdY,100,100);
}



播放音樂
新增 sound資料庫
最簡單的播放音樂
import processing.sound.*;
SoundFile sound;
void setup()
{
  
 size(800,600);

 sound=new SoundFile(this,"Boss.mp3");
 sound.play();
 sound.loop();
 }


沒有留言:

張貼留言