✎利用陣列及迴圈的方式產生目標物
👀沿用上禮拜的程式碼,並修改內容
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(){
}
沒有留言:
張貼留言