2017年10月2日 星期一

Week04_是賴小沫的

✎利用陣列及迴圈的方式產生目標物

👀沿用上禮拜的程式碼,並修改內容

PImage imgEye,imgBear;
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
float eyeAX=0,eyeAY=0;
float [][]bearX = new float [5][4];   //每個目標物的X軸用陣列表示
float [][]bearY = new float [5][4];   //每個目標物的Y軸用陣列表示
boolean [][]bearAlive = new boolean [5][4];   //以陣列的方式紀錄目標物是否存活
void setup(){
  size(800,600);
  imgEye=loadImage("threeEyes.png");
  imgBear=loadImage("bear.png");
  imageMode(CENTER);
  for(int i=0;i<5;i++){
    for(int j=0;j<4;j++){
      bearX[i][j]=700-i*100;  
//設定X軸的數值

      bearY[i][j]=100+j*100;   //設定Y軸的數值
      bearAlive[i][j]=true;   //設定目標物是否存活    }
  }
}
void draw(){
  background(255);
  for(int i=0;i<5;i++){
    for(int j=0;j<4;j++){

      //如果目標物與攻擊物的距離小於100,將目標物的設為死亡
      if(dist(bearX[i][j],bearY[i][j],eyeX,eyeY)<100)
        bearAlive[i][j]=false;

      //如果目標物還存活著,就把它畫出來
      if(bearAlive[i][j]) image(imgBear,bearX[i][j],bearY[i][j],120,100);
    }
  }

  image(imgEye,eyeX,eyeY,120,100);
  line(eyeX,eyeY,400,300);
  eyeX+=eyeVX;
  eyeY+=eyeVY;
  if(eyeX<50) {eyeX=50; eyeVX=-eyeVX;}
  if(eyeX>width-50) {eyeX=width-50; eyeVX=-eyeVX;}
  if(eyeY<50) {eyeY=50; eyeVY=-eyeVY;}
  if(eyeY>height-50) {eyeY=height-50; eyeVY=-eyeVY;}
  eyeVX+=eyeAX;
  eyeVY+=eyeAY;
  eyeVX*=0.99;
  eyeVY*=0.99;
}
void mouseDragged(){
  eyeX=mouseX;
  eyeY=mouseY;
  eyeVX=eyeVY=eyeAX=eyeAY=0;
}
void mouseReleased(){
  eyeVX=(400-mouseX)/10.0;
  eyeVY=(300-mouseY)/10.0;
  eyeAY=0.98;
}
按下左上角的三角形Ctrl+R,即可執行看結果

✎播放音樂

👀先下載Sound或Minim文件庫



👀匯入mp3檔


👀Sound版本

註:如果Sound不成功,改用Minim文件庫

👀Minim版本

import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
  size(800,600);
 
minim = new Minim(this);  //宣告Minim型態的變數
  player=minim.loadFile("SleepAway.mp3",2048);  
//讀取音樂
  player.play();
  //播放音樂
}
void draw(){

}

 按下左上角的三角形Ctrl+R,即可執行看結果

沒有留言:

張貼留言