2020年5月28日 星期四

程式設計重修哦 Week14

上禮拜的程式碼:
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;
  }
}

今天寫背景音樂的程式


播放音樂的程式碼:
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;
PImage imgBird;

void setup(){
    minim = new Minim(this);
    player = minim.loadFile("song.mp3");
    player.play();
  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;

  }

}
加上豬豬跟聲音:
import ddf.minim.*;
Minim minim;
AudioPlayer player;
AudioPlayer player2;//TODO2
PImage imgBird, imgPig;//TODO3
void setup(){
  size(500,400);
  minim = new Minim(this);
  player = minim.loadFile("song.mp3");
  player.play();
  player2 = minim.loadFile("pig.wav");//TODO2
 
  imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer
  imgPig =loadImage("pig.gif");//TODO3 我們的豬
  imageMode(CENTER);//以正中心,當座標
}
float []pigX=new float[20];//TODO3
float []pigY=new float[20];//TODO3
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++){//TODO3
    image(imgPig, pigX[i], pigY[i], 100,100);//TODO3
  }
  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){//TODO2
    player2.rewind();//倒到最前面
    player2.play();//再播!!!
    pigX[pigN]=mouseX;//TODO3
    pigY[pigN]=mouseY;//TODO3
    pigN++;//TODO3
  }
  if( dist(mouseX,mouseY, birdX,birdY)<50){
    oldX=birdX; oldY=birdY;
    bMoving=true;///按下去時,如果有按到,才能動它
  }
}
void mouseDragged(){//按下去,才會開始動
  if(bMoving) {//有按到,才能動它
    birdX=mouseX; birdY=mouseY;
  }
}

沒有留言:

張貼留言