期中作品-爆氣飛碟球
按S鍵 即可開始遊戲
遊戲開始時,會有一顆小藍球在場中間
當leap motion 感應到手時,就會有一顆黑圓球出現
利用黑圓球碰撞小藍球
當碰撞越多次,小藍球就會越變越紅
--------------------------------------------------------------------------------------------------------
import de.voidplus.leapmotion.*;
import ddf.minim.*;
LeapMotion leap;
Minim minim;
AudioPlayer player;
AudioPlayer bump;
PImage begin;
PImage over;
PImage back;
void setup() {
size(1200, 600, P3D);
leap=new LeapMotion(this);
begin = loadImage("start.jpg");
over = loadImage("gameover.jpg");
back = loadImage("back.jpg");
back.resize(1200, 600);
minim = new Minim(this);
player = minim.loadFile("start.mp3");
player.play();
}
float ballX = 580;
float ballY = 280;
float speed = 5.0;
int a=0;
int b=0;
int myOrientation=-1;
int z=0;
int red=0;
int blue=255;
float s=second();
void draw() {
background(back);
if (z==0) {
image(begin, 0, 0, 1200, 600);
if (keyPressed) {
if (key=='s') {
z=1;
}
}
} else if (z==1) {
fill(red, 0, blue);
ellipse(ballX, ballY, 60, 60);
for (Hand hand : leap.getHands ()) {
pushMatrix();
PVector pos = hand.getPosition();
fill(0);
ellipse(pos.x, pos.y, 100, 100);
popMatrix();
speed*=0.99;
//ellipse(pos.x, pos.y, 100, 100);
//fill(red, 0, blue);
//ellipse(ballX, ballY, 60, 60);
if (ballX<=50 && ballY<=200) {
speed=0;
z=2;
} else if (ballX<=50 && ballY>=400) {
speed=0;
z=2;
} else if (ballX>=1150 && ballY<=200) {
speed=0;
z=2;
} else if (ballX>=1150 && ballY>=400) {
speed=0;
z=2;
} else if (ballY<=50) {
speed=0;
z=2;
} else if (ballY>=550) {
speed=0;
z=2;
} else if (ballX<0) {
a++;
ballX=580;
ballY=280;
} else if (ballX>1200) {
b++;
ballX=580;
ballY=280;
} else if (sqrt((pos.x-ballX)*(pos.x-ballX)+(pos.y-ballY)*(pos.y-ballY))<=80) {
bump = minim.loadFile("067.mp3");
bump.play();
red+=10;
blue-=10;
if (ballX<pos.x && ballY<pos.y) {
myOrientation=0;
speed=5.0;
} else if (ballX>pos.x && ballY<pos.y) {
myOrientation=1;
speed=5.0;
} else if (ballX>pos.x && ballY>pos.y) {
myOrientation=2;
speed=5.0;
} else if (ballX<pos.x && ballY>pos.y) {
myOrientation=3;
speed=5.0;
} else if (ballX<pos.x && pos.y==0) {
myOrientation=4;
speed=5.0;
} else if (ballX>pos.x && pos.y==0) {
myOrientation=5;
speed=5.0;
} else if (pos.x==0 && ballY<pos.y) {
myOrientation=6;
speed=5.0;
} else if (pos.x==0 && ballY>pos.y) {
myOrientation=7;
speed=5.0;
}
}
if (myOrientation==0)
{
ballX-=speed;
ballY-=speed;
}
if (myOrientation==1)
{
ballX+=speed;
ballY-=speed;
}
if (myOrientation==2)
{
ballX+=speed;
ballY+=speed;
}
if (myOrientation==3)
{
ballX-=speed;
ballY+=speed;
}
if (myOrientation==4)
{
ballX-=speed;
}
if (myOrientation==5)
{
ballX+=speed;
}
if (myOrientation==6)
{
ballY-=speed;
}
if (myOrientation==7)
{
ballY+=speed;
}
println(a);
println(b);
text("SCORE:"+a+":"+b, 130, 150);
fill(500, 102, 500, 500);
}
} else if (z==2) {
image(over, 0, 0, 1200, 600);
if (keyPressed) {
if (key=='r') {
z=0;
ballX=580;
ballY=280;
}
}
}
}


沒有留言:
張貼留言