2014年4月21日 星期一

第十週的期中作品



作品名稱:太空巡邏艦/太空探險隊

作品介紹:大量的子彈出現要不停的閃躲子彈以求自保,場上會出現兩種道具漢堡和炸彈
吃漢堡可以補血,吃炸彈可以消除版面上所有的子彈,最後會有成績統計。

/*吃東西時會有特殊音效*/

import de.voidplus.leapmotion.*;

LeapMotion leap;

PImage img;
PImage img1;
PImage img2;
PImage img3;
PImage img4;
PImage img5;
PImage img10;
PImage img11;
PImage img12;
PImage img13;
PImage img14;
PImage img15;
PImage img16;
PImage img17;
PImage img18;
PImage img19;



float [] bulletX=new float[50];
float [] bulletY=new float[50];
int [] start = new int[50];
int code;
int code1;
int code2;
int code3;
float [] bulletX1=new float[50];
float [] bulletY1=new float[50];
int [] start1 = new int[50];
float [] bulletX2=new float[50];
float [] bulletY2=new float[50];
int [] start2 = new int[50];
float [] bulletX3=new float[50];
float [] bulletY3=new float[50];
int [] start3 = new int[50];
int time;
int boo;//Boom Probability
int booX;
int booY;
int pro;//bullet Probability
int bg;
int health;
int aoo;
int aooX;
int aooY;
int n1, n2, n3, n4, n5, nu1, nu2, nu3, nu4, nu5;


import ddf.minim.*;
AudioPlayer player;
AudioPlayer player1;
AudioPlayer player2;
AudioPlayer player3;
Minim minim;//audio context

void setup() {
  size(1024, 640);
  bg=1;
  health=200;
  img = loadImage("bground.jpg");
  img1 = loadImage("bull.png");
  img2 = loadImage("fly.png");
  img3 = loadImage("boom.png");
  img4 = loadImage("blood.png");
  img5 = loadImage("hamburger.png");
  img10 = loadImage("0.png");
  img11 = loadImage("1.png");
  img12 = loadImage("2.png");
  img13 = loadImage("3.png");
  img14 = loadImage("4.png");
  img15 = loadImage("5.png");
  img16 = loadImage("6.png");
  img17 = loadImage("7.png");
  img18 = loadImage("8.png");
  img19 = loadImage("9.png");
  nu1=10;
  nu2=100;
  nu3=1000;
  nu4=10000;
  nu5=100000;
  n1=0;
  n2=0;
  n3=0;
  n4=0;
  n5=0;



  for (int a=0;a<50;a++) {
    bulletX[a]=0;
    bulletY[a]=-100;
    bulletX1[a]=-100;
    bulletY1[a]=0;
    bulletY2[a]=-100;
    bulletX2[a]=1024;
    bulletX3[a]=-100;
    bulletY3[a]=640;
  }
  boo=0;
  time=1;
  pro=1000;

  minim = new Minim(this);
  player = minim.loadFile("music.mp3", 2048);
  player1 = minim.loadFile("bow.wav", 2048);
   player2 = minim.loadFile("renew.mp3", 2048);
    player3 = minim.loadFile("boom.wav", 2048);
   imageMode(CENTER);
   noStroke(); fill(50);
   leap = new LeapMotion(this);
}

void draw() {
  int fps = leap.getFrameRate();
  player.play();
  background(img);
 
 
 
  if (bg==1) {
    image(img4, 15, 10, health, 20);
     for(Hand hand : leap.getHands()){
     hand.draw();
    int     hand_id          = hand.getId();
    PVector hand_position    = hand.getPosition();
   println("x:" + hand_position.x + " Y:" + hand_position.y);
    int n=hand.countFingers();
    image(img2,  hand_position.x, hand_position.y, 60, 60);
for(Finger finger : hand.getFingers()){
 
      // Basics
   
    }
   

 

    if (time%300==0) {
      aoo=1;
      aooX=int (random(0, 500));
      aooY=int (random(0, 500));
    }
if (aoo==1)
      image(img5, aooX, aooY, 40, 40);
     
if (hand_position.x<=aooX+20&&hand_position.x>=aooX-20)
      if (hand_position.y<=aooY+20&&hand_position.y>=aooY-20)
     {
       if(health<170)
health+=30;
aoo=0;
aooX=-100;
aooY=-100;
player2 = minim.loadFile("renew.mp3");
          player2.play();
     }

    if (time%500==0) {
      boo=1;
      booX=int (random(0, 500));
      booY=int (random(0, 500));
    }


    if (boo==1)
      image(img3, booX, booY, 40, 40);

    if (hand_position.x<=booX+20&&hand_position.x>=booX-20)
      if (hand_position.y<=booY+20&&hand_position.y>=booY-20)
      {
        boo=0;
        booX=-100;
        booY=-100;
        player3 = minim.loadFile("boom.wav");
          player3.play();
        for (int i=0;i<50;i++)
        {
          start[i]=0;
          start1[i]=0;
          start2[i]=0;
          start3[i]=0;
        }
      }
 
     
     
    for (int i=0;i<50;i++) {

      if (bulletY[i]==-100) {
        code=int(random(0, pro));
        if (code==1) {
          bulletY[i]=int(random(0, 640));
          start[i]=1;
          bulletX[i]=0;
        }
      }

      if (start[i]==1) {
        image(img1, bulletX[i], bulletY[i]+30, 30, 10);
        bulletX[i]+=2;
        if (bulletX[i]>1024) {
          bulletY[i]=-100;
          start[i]=0;
        }
      }
    }

    //left
    for (int i=0;i<50;i++) {

      if (bulletX1[i]==-100) {
        code1=int(random(0, pro));
        if (code1==1) {
          bulletX1[i]=int(random(0, 1024));
          start1[i]=1;
        }
      }

      if (start1[i]==1) {
        image(img1, bulletX1[i], bulletY1[i]+30, 30, 10);
        bulletY1[i]+=2;
        if (bulletY1[i]>640) {
          bulletY1[i]=640;
          start1[i]=0;
          bulletX[i]=-100;
        }
      }
    }
    //top
    for (int i=0;i<50;i++) {

      if (bulletY2[i]==-100) {
        code2=int(random(0, pro));
        if (code2==1) {
          bulletY2[i]=int(random(0, 640));
          start2[i]=1;
        }
      }

      if (start2[i]==1) {
        image(img1, bulletX2[i], bulletY2[i]+30, 30, 10);
        bulletX2[i]-=2;
        if (bulletX2[i]<0) {
          bulletX2[i]=1024;
          start2[i]=0;
        }
      }
    }
    //right
    for (int i=0;i<50;i++) {

      if (bulletX3[i]==-100) {
        code3=int(random(0, pro));
        if (code3==1) {
          bulletX3[i]=int(random(0, 1024));
          start3[i]=1;
        }
      }

      if (start3[i]==1) {
        image(img1, bulletX3[i], bulletY3[i]+30, 30, 10);
        bulletY3[i]-=2;
        if (bulletY3[i]<0) {
          bulletY3[i]=640;
          start3[i]=0;
        }
      }
    }
    //down


    for (int i=0;i<50;i++) {
      if (start[i]==0) {
        bulletX[i]=0;
        bulletY[i]=-100;
      }
      if (start1[i]==0) {
        bulletX1[i]=-100;
        bulletY1[i]=0;
      }
      if (start2[i]==0) {
        bulletY2[i]=-100;
        bulletX2[i]=1024;
      }
      if (start3[i]==0) {
        bulletX3[i]=-100;
        bulletY3[i]=640;
      }
    }
     for (int i=0;i<50;i++) {
      if (hand_position.y<=bulletY[i]+5 && hand_position.y>=bulletY[i]-5)
        if (hand_position.x<=bulletX[i]+5&& hand_position.x>=bulletX[i]-5 && start[i]==1)
        {

          start[i]=0;
          bulletX[i]=0;
          bulletY[i]=-50;
          health-=20;
          player1 = minim.loadFile("bow.wav");
          player1.play();
        }
      if (hand_position.y<=bulletY1[i]+5 && hand_position.y>=bulletY1[i]-5)
        if (hand_position.x<=bulletX1[i]+5&& hand_position.x>=bulletX1[i]-5 && start1[i]==1)
        {

          start1[i]=0;
          bulletX1[i]=-50;
          bulletY1[i]=0;
          health-=20;
          player1 = minim.loadFile("bow.wav");
          player1.play();
        }
      if (hand_position.y<=bulletY2[i]+5 && hand_position.y>=bulletY2[i]-5)
        if (hand_position.x<=bulletX2[i]+5&& hand_position.x>=bulletX2[i]-5 && start2[i]==1)
        {

          start2[i]=0;
          bulletY2[i]=-50;
          bulletX2[i]=1024;
          health-=20;
          player1 = minim.loadFile("bow.wav");
          player1.play();
        }
      if (hand_position.y<=bulletY3[i]+5 && hand_position.y>=bulletY3[i]-5)
        if (hand_position.x<=bulletX3[i]+5&& hand_position.x>=bulletX3[i]-5 && start[i]==1)
        {

          start3[i]=0;
          bulletX3[i]=-50;
          bulletY3[i]=640;
          health-=20;
          player1 = minim.loadFile("bow.wav");
          player1.play();
        }
    }

    if (time%100==0&&pro>205)
      pro-=200;

    if (health<=0)
      bg=2;



    time++;
     }
  }//bg=1


  if (bg==2)
  {
    n1=time%nu1;
    n2=time%nu2/10;
    n3=time%nu3/100;
    n4=time%nu4/1000;
    n5=time%nu5/10000;
    println(time);
    bg=3;
  }
  if (bg==3) {
    if (n1==0)image(img10, 630, 300, 50, 50);
    if (n1==1)image(img11, 630, 300, 50, 50);
    if (n1==2)image(img12, 630, 300, 50, 50);
    if (n1==3)image(img13, 630, 300, 50, 50);
    if (n1==4)image(img14, 630, 300, 50, 50);
    if (n1==5)image(img15, 630, 300, 50, 50);
    if (n1==6)image(img16, 630, 300, 50, 50);
    if (n1==7)image(img17, 630, 300, 50, 50);
    if (n1==8)image(img18, 630, 300, 50, 50);
    if (n1==9)image(img19, 630, 300, 50, 50);


    if (n2==0)image(img10, 580, 300, 50, 50);
    if (n2==1)image(img11, 580, 300, 50, 50);
    if (n2==2)image(img12, 580, 300, 50, 50);
    if (n2==3)image(img13, 580, 300, 50, 50);
    if (n2==4)image(img14, 580, 300, 50, 50);
    if (n2==5)image(img15, 580, 300, 50, 50);
    if (n2==6)image(img16, 580, 300, 50, 50);
    if (n2==7)image(img17, 580, 300, 50, 50);
    if (n2==8)image(img18, 580, 300, 50, 50);
    if (n2==9)image(img19, 580, 300, 50, 50);



    if (n3==0)image(img10, 530, 300, 50, 50);
    if (n3==1)image(img11, 530, 300, 50, 50);
    if (n3==2)image(img12, 530, 300, 50, 50);
    if (n3==3)image(img13, 530, 300, 50, 50);
    if (n3==4)image(img14, 530, 300, 50, 50);
    if (n3==5)image(img15, 530, 300, 50, 50);
    if (n3==6)image(img16, 530, 300, 50, 50);
    if (n3==7)image(img17, 530, 300, 50, 50);
    if (n3==8)image(img18, 530, 300, 50, 50);
    if (n3==9)image(img19, 530, 300, 50, 50);


    if (n4==0)image(img10, 480, 300, 50, 50);
    if (n4==1)image(img11, 480, 300, 50, 50);
    if (n4==2)image(img12, 480, 300, 50, 50);
    if (n4==3)image(img13, 480, 300, 50, 50);
    if (n4==4)image(img14, 480, 300, 50, 50);
    if (n4==5)image(img15, 480, 300, 50, 50);
    if (n4==6)image(img16, 480, 300, 50, 50);
    if (n4==7)image(img17, 480, 300, 50, 50);
    if (n4==8)image(img18, 480, 300, 50, 50);
    if (n4==9)image(img19, 480, 300, 50, 50);



    if (n5==0)image(img10, 430, 300, 50, 50);
    if (n5==1)image(img11, 430, 300, 50, 50);
    if (n5==2)image(img12, 430, 300, 50, 50);
    if (n5==3)image(img13, 430, 300, 50, 50);
    if (n5==4)image(img14, 430, 300, 50, 50);
    if (n5==5)image(img15, 430, 300, 50, 50);
    if (n5==6)image(img16, 430, 300, 50, 50);
    if (n5==7)image(img17, 430, 300, 50, 50);
    if (n5==8)image(img18, 430, 300, 50, 50);
    if (n5==9)image(img19, 430, 300, 50, 50);
  }

 }


沒有留言:

張貼留言