2021年1月4日 星期一

final2

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);

}

沒有留言:

張貼留言