processing:
import ddf.minim.*;
import processing.serial.*;
Serial myPort;
PImage img;
PImage img2;
PImage img3;
float[] ufoX=new float[10];
float[] ufoY=new float[10];
boolean [] ufoAlive = new boolean[10];
float[] v=new float[10];
Minim minim;
AudioPlayer player;
void setup(){
size(1200,700);
img=loadImage("galaxy.jpg");
img2=loadImage("aim-removebg-preview.png");
img3=loadImage("1-removebg-preview.png");
for(int i=0;i<10;i++){
ufoX[i]=-i*100;
ufoY[i]=random(50,650);
ufoAlive[i]=true;
v[i]=random(2,5);
}
myPort = new Serial(this,"COM3",9600);
minim = new Minim(this);
player = minim.loadFile("shotgun.wav");
}
int aimX=600,aimY=350;
float vx=0, vy=0;
int playSound=0;//0: not playing, 60: will play 60 frame
void draw()
{
image(img,0,0,1200,700);
while(myPort.available()>=3){
int x=myPort.read();
int y=myPort.read();
int sw=myPort.read();
if( playSound==0 && sw==0){
playSound=60;
player.rewind();
player.play();
}
vx=(x-118)/16.0;//-4.0...+4.0
vy=(y-118)/16.0;//-4.0...+4.0
println(x+" "+y);
}
if( playSound>0) playSound--;
aimX+=vx;
aimY+=vy;
for(int i=0;i<5;i++){
if(ufoAlive[i]){
image(img3,ufoX[i],ufoY[i],120,160);
ufoX[i]+=v[i];
if(dist(ufoX[i],ufoY[i],aimX,aimY)<80 && myPort.read()==0){
//score++;
ufoX[i]=-random(50,640);
}
if(ufoX[i]>1200){
ufoX[i]=-random(50,650);
}
}
}
image(img2,aimX-50,aimY-50,100,100);
rect(aimX-50,aimY+35,100,15);
}
沒有留言:
張貼留言