2017年10月2日 星期一

Week 4 - 文郁上課誌

                       2017互動技術

2017 / 10 / 02
1. 畫出多個Pig

2. 做出直線運動、拋物線

3.  音樂播放


*畫出更多個Pig,且當鳥碰到Pig時,Pig會自動消失




PImage imgBird, imgPig;
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;
float birdAX =0, birdAY = 0;
float [][]pigx=new  float[5][4];
float [][]pigy=new  float[5][4];
boolean [][]pigAlive= new boolean[5][4];
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;
  birdVX += birdAX;
  birdVY += birdAY;
}
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 [][]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(#5DE0ED); ellipse(pigx[i][j], pigy[i][j], 100,100);
    }
  }
  fill(#FFB4EC); ellipse(400,300,100,100);

}

*移動滑鼠碰到藍色球,藍色球就會消失。


float birdX=100, birdY=400;
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,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(){
  background(255);
  for(int i=0;i<5;i++){
    for(int j=0;j<4;j++){
      if( dist(birdX, birdY, pigx[i][j], pigy[i][j]) <100 ) pigAlive[i][j]=false;
      if(pigAlive[i][j]) {fill(#5DE0ED); ellipse(pigx[i][j], pigy[i][j], 100,100); }
    }
  }
  fill(#FFB4EC); ellipse(birdX, birdY,100,100);
  
  birdX += birdVX; birdY += birdVY;
  birdVX +=birdAX; birdVY +=birdAY;
}
void mouseDragged(){
  birdX=mouseX; birdY=mouseY;

}

*粉紅球可以做拋物線運動


float birdX=100, birdY=400;
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,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(){
  background(255);
  for(int i=0;i<5;i++){
    for(int j=0;j<4;j++){
      if( dist(birdX, birdY, pigx[i][j], pigy[i][j]) <100 ) pigAlive[i][j]=false;
      if(pigAlive[i][j]) {fill(#5DE0ED); ellipse(pigx[i][j], pigy[i][j], 100,100); }
    }
  }
  fill(#FFB4EC); ellipse(birdX, birdY,100,100);
  
  birdX += birdVX; birdY += birdVY;
  birdVX +=birdAX; birdVY +=birdAY;
}
void mouseDragged(){
  birdX=mouseX; birdY=mouseY;
  birdVX=0; birdVY=0;
  birdAY=0;
}
void mouseReleased(){
  birdVX= (100-mouseX)/5.0; birdVY=(400-mouseY)/5.0; birdAY=0.98;

}


*音樂播放
要記得先載入Sound資料庫!




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

}

*使用Minim音樂播放





import ddf.minim.*;

Minim minim;
AudioPlayer player;

void setup(){
  size(800,600);
  minim = new Minim(this);
  player = minim.loadFile("bird.mp3",2048);
  player.play();
}
void draw(){

}

沒有留言:

張貼留言