01.arduino
02.processing
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import ddf.minim.signals.*;
import ddf.minim.spi.*;
import ddf.minim.ugens.*;
import processing.serial.*;
Serial myPort;
float[] zombieX=new float[8];
float[] zombieY=new float[8];
PImage imgZombie,imgBG,img,imgBG2;
int state=0;
int remainTime=0;
int score1=0;
int score2=0;
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void reborn(int i){
zombieX[i]=int (random(3))*135;
zombieY[i]=10;
}
void setup(){
size(400,600);
myPort = new Serial(this,"COM7",9600);
imgBG= loadImage("BG.jpg");
img= loadImage("shot.jpg");
imgBG2= loadImage("BG2.png");
minim = new Minim(this);
player = minim.loadFile("456.mp3");
player.play();
imgZombie=loadImage("zombie2.png");
for(int i=0;i<8;i++){
reborn(i);
zombieY[i]=325-i*50;
}
}
int old1=0, old2=0, old3=0;
int Button1=0,Button2=0,Button3=0;
void draw(){
if(state==0){
drawOP();
}else if(state==1){
drawPlayer();
}else if(state==2){
drawED();
}
getData();
}
byte [] data=new byte[3];
void getData(){
if(myPort.available()>0){
myPort.readBytes(data);
old1=Button1;
old2=Button2;
old3=Button3;
Button1=data[0];
Button2=data[1];
Button3=data[2];
println(data);
int press= -1;
if(data[0]==1 && old1==0) press=1;
else if(data[1]==1 && old2==0)press=2;
else if(data[2]==1 && old3==0)press=3;
if( press==1 && zombieX[0]==0) killOneZombie();
else if( press==2 && zombieX[0]==135) killOneZombie();
else if( press==3 && zombieX[0]==270) killOneZombie();
else if(press!= -1 ) bad();
}
}
void killOneZombie(){
for(int i=0;i<8-1;i++){
zombieX[i]=zombieX[i+1];
}
reborn(7);
score1+=200;
minim = new Minim(this);
player = minim.loadFile("bang.wav");
player.play();
}
void bad(){
background(255,0,0);
score2+=100;
}
void keyPressed(){
if(key=='1' && zombieX[0]==0) killOneZombie();
else if(key=='2' && zombieX[0]==135) killOneZombie();
else if(key=='3' && zombieX[0]==270) killOneZombie();
else if(key=='z' && state==0) {state=1;remainTime=30*60;}
else bad();
}
void drawOP(){
image(imgBG2,0,0,width,height);
fill(#FFFFFF);
textSize(30); text("Press z to Play",95,335);
textSize(26); text("Happy Halloween!",90,395);
}
void drawPlayer(){
image(imgBG,0,0,width,height);
image(img,0,480,400,120);
for(int i=7;i>=0;i--){
image(imgZombie, zombieX[i],zombieY[i]);
}
fill(#FC0317); textSize(40); text((remainTime+59)/60,5,40);
remainTime--;
if(remainTime<=0) state=2;
}
void drawED(){
image(imgBG,0,0,width,height);
fill(#FC0317); text(" Game End\nPlus Score:"+score1,55,200);
fill(#FC0317); text(" Minus Score:-"+score2,10,320);
fill(#FC0317); text("Score:"+(score1-score2),140,445);
}
沒有留言:
張貼留言