2019年10月17日 星期四

Week06_

0.zombie

int[] zomb=new int[10];
void setup(){
  size(300,400);
  for(int i=0;i<10;i++){zomb[i]=int(random(3));}
}void draw(){
  background(60,60,10);
  fill(125);
  for(int i=9;i>=0;i--){rect(zomb[i]*100,200-i*30, 100,100);}
  fill(255);
  rect(0,300, 100,100);
  rect(100,300, 100,100);
  rect(200,300, 100,100);
}void keyPressed(){
  if((key=='1' && zomb[0]==0)||(key=='2' && zomb[0]==1)||(key=='3' && zomb[0]==2)){
   for(int i=0;i<9;i++) zomb[i]=zomb[i+1];
   zomb[9]=int(random(3));
  }else{
    fill(255,0,0);
    rect(0,0, width,height);
  }
}
int[] zomb=new int[10];
void setup(){
  size(300,400);
  for(int i=0;i<10;i++){
    zomb[i]=int(random(3));
  }
}
void draw(){
  background(60,60,10);
  fill(125);
  for(int i=9;i>=0;i--){
    rect(zomb[i]*100,200-i*30, 100,100);
  }
  fill(255);
  rect(0,300, 100,100);
  rect(100,300, 100,100);
  rect(200,300, 100,100);
}
void keyPressed(){
  if(zomb[0]==key-'1'){
   for(int i=0;i<9;i++) zomb[i]=zomb[i+1];
   zomb[9]=int(random(3));
  }else{
    fill(255,0,0);
    rect(0,0, width,height);
  }
}

1.聲音

引入文件庫(紅色V),看範例參考

[Sound]
//----mp3
import processing.sound.*;
SoundFile player;
void setup() {
  player = new SoundFile(this, "lll.mp3");
  player.play();
}
void draw(){
}
//----wav
import processing.sound.*;
SoundFile wavP;
void setup() {
  wavP = new SoundFile(this, "BULLET.wav");
}
void draw(){
}
void mousePressed(){
  wavP.play();
}
//-----------------
[Minim]
//----wav
import ddf.minim.*;
Minim minim;
AudioPlayer wavP;
void setup() {
  minim = new Minim(this);
  wavP = minim.loadFile("BULLET.wav");
}
void draw(){
}
void mousePressed(){
  wavP.rewind(); //倒帶
  wavP.play(); //撥放
}

2.氣球

PImage imBall;
float[] ballX=new float[200];
float[] ballY=new float[200];
float[] ballS=new float[200];
int nowN=0;
void setup(){
  size(500,400);
  imBall=loadImage("ball.jpg");
}
void draw(){
  background(255);
  for(int i=0;i<nowN;i++){
    image(imBall, ballX[i],ballY[i], ballS[i],ballS[i]/2*3);
    if(ballY[i]>0) ballY[i]--;
  }
}
void  mousePressed(){
  ballS[nowN]=100;
  ballX[nowN]=mouseX-ballS[nowN]/2;
  ballY[nowN]=mouseY-ballS[nowN]/2*3;
  nowN++;
}
import ddf.minim.*;
Minim minim;
AudioPlayer wavP;
PImage imBall;
float[] ballX=new float[200];
float[] ballY=new float[200];
float[] ballS=new float[200];
int nowN=0;
void setup(){
  size(500,400);
  imBall=loadImage("ball.jpg");
  minim = new Minim(this);
  wavP = minim.loadFile("Wate.wav");
}
void draw(){
  background(255);
  for(int i=0;i<nowN;i++){
    image(imBall, ballX[i],ballY[i], ballS[i],ballS[i]/2*3);
    if(ballY[i]>0) ballY[i]--; //使球上升
  }
  if(mousePressed) setBalloon(ballS[nowN-1]*1.03,nowN-1); //使球變大
}
void  setBalloon(float size,int i){
  ballS[i]=size;
  ballX[i]=mouseX-ballS[i]/2;
  ballY[i]=mouseY-ballS[i]/2*3;
}
void  mousePressed(){
  if(mouseButton==LEFT){ //吹氣球
    setBalloon(10,nowN);
    nowN++;
    wavP.rewind();
    wavP.play();
  }else if(mouseButton==RIGHT){ //刺破球
    for(int i=0;i<nowN;i++){
      if(ballX[i]<mouseX && mouseX<ballX[i]+ballS[i]
      && ballY[i]<mouseY && mouseY<ballY[i]+ballS[i]/2*3){
      setBalloon(0, i);
      }
    }
  }
}

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...