import de.voidplus.leapmotion.*;
import ddf.minim.*;
LeapMotion leap;
Minim m;
AudioPlayer bgmusic;
int die=0;
int bgX=0;
PImage bg;
PImage bg1;
PImage [] bird=new PImage[3];
PImage [] aa =new PImage[2];
PImage tube;
PImage tube2;
float birdX=100,birdY=200;
float []aaX = new float[100];
float []aaY = new float[100];
int []aaType=new int[100];
int countDown=8*30;
int grade=0;
int count=750;
Boolean nofly=true;
PVector p=new PVector();
int[] tubex=new int[5];
int[] tubey=new int[5];
int[] tube2x=new int[5];
int[] tube2y=new int[5];
void setup(){
m = new Minim(this);
bgmusic=m.loadFile("abc.mp3");
tube=loadImage("tube1.jpg");
tube2=loadImage("tube2.jpg");
bg = loadImage("ground.jpg");
bg1 = loadImage("first.jpg");
bird[0] = loadImage("a.png");
aa[0] = loadImage("gold1.jpg");
aa[1] = loadImage("gold2.jpg");
size(900,500);
for(int i=0;i<100;i++){
aaType[i]=int(random(2));
aaX[i]=i*50;
aaY[i]=300-int(random(6))*50;
}
for(int i=0;i<5;i++){
tubex[i]=500+240*i;
tubey[i]=int(-random(250));
tube2x[i]=500+240*i;
tube2y[i]=int(500-random(250));
}
leap = new LeapMotion(this);
}
void draw(){
bgmusic.play();
if(countDown>0){
image(bg1,0,0);
countDown--;
return;
}
background(0,0,0);
int fps = leap.getFrameRate();
drawBG();
drawbird();
for(int i=0;i<5;i++){
image(tube,tubex[i],tubey[i],50,250);
image(tube2,tube2x[i],tube2y[i],50,250);
tubex[i]-=5;
tube2x[i]-=5;
if(tubex[i]<-50){
tubex[i]=tubex[(i+4)%5]+240;
tube2x[i]=tube2x[(i+4)%5]+240;
tubey[i]=int(-random(250));
tube2y[i]=int(500-random(250));
}
}
for(int i=0;i<100;i+=4)
{
if(aaType[i]!=-1){
if(dist(birdX,birdmoveY,aaX[i]-bgmoveX,aaY[i])<40){
aaType[i]=-1;
grade=grade+10;
}
else image(aa[aaType[i]],aaX[i]-bgmoveX,aaY[i],50,50);
}
}
for(int i=0;i<5;i++){
if(tubex[i]<birdX && tubex[i]+60>birdX){
if((tubey[i]+250>birdmoveY)||(tube2y[i]<birdmoveY+60)){
die++;
}
}
}
if(die>0)
{
background(#000302);
textSize(48);
text("Score: "+grade,90,300);
fill(0, 102, 153);
return;
}
if(count>0){
count--;
text("Time: "+count/50,170,300);
}
if(count==0){
background(#000302);
textSize(48);
text("Score: "+grade,90,300);
fill(0, 102, 153);
return;
}
for(Hand hand : leap.getHands()){
p=hand.getPosition();
}
if(p.y>350 && nofly){
birdmoveY-=70;
nofly=false;
}
if(p.y<350){
nofly=true;
}
}
void keyPressed(){
if(keyCode==RIGHT){
birdmoveY-=100;
}
}
float bgmoveX=0;
void drawBG(){
for(int i=0;i<10;i++){
image(bg,i*100-bgmoveX%100,0);
}
bgmoveX+=5;
}
float birdmoveY=0;
void drawbird(){
image(bird[0],40,birdmoveY,60,60);
birdmoveY+=5;
}
沒有留言:
張貼留言