作品名稱:爆氣飛碟球
這是一個在湯姆熊娛樂世界可以玩到的一種遊戲機台,我們想把它移植到我們自己的遊戲,
利用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;
int alive=1;
float speedX = 5.0, speedY=0.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();
speedX*=1.01;
speedY*=1.01;
//ellipse(pos.x, pos.y, 100, 100);
//fill(red, 0, blue);
//ellipse(ballX, ballY, 60, 60);
if (ballX<=50 && ballY<=200) {
alive=0;
z=2;
} else if (ballX<=50 && ballY>=400) {
alive=0;
z=2;
} else if (ballX>=1150 && ballY<=200) {
alive=0;
z=2;
} else if (ballX>=1150 && ballY>=400) {
alive=0;
z=2;
} else if (ballY<=50) {
speedY=-speedY;
//z=2;
} else if (ballY>=550) {
speedY=-speedY;
//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;
speedX=5;
speedY=5;
} else if (ballX>pos.x && ballY<pos.y) {
myOrientation=1;
speedX=5;
speedY=5;
} else if (ballX>pos.x && ballY>pos.y) {
myOrientation=2;
speedX=5;
speedY=5;
} else if (ballX<pos.x && ballY>pos.y) {
myOrientation=3;
speedX=5;
speedY=5;
} else if (ballX<pos.x && pos.y==0) {
myOrientation=4;
speedX=5;
speedY=5;
} else if (ballX>pos.x && pos.y==0) {
myOrientation=5;
speedX=5;
speedY=0;
} else if (pos.x==0 && ballY<pos.y) {
myOrientation=6;
speedX=0;
speedY=5;
} else if (pos.x==0 && ballY>pos.y) {
myOrientation=7;
speedX=0;
speedY=5;
}
}
if (myOrientation==0)
{
ballX-=speedX;
ballY-=speedY;
}
if (myOrientation==1)
{
ballX+=speedX;
ballY-=speedY;
}
if (myOrientation==2)
{
ballX+=speedX;
ballY+=speedY;
}
if (myOrientation==3)
{
ballX-=speedX;
ballY+=speedY;
}
if (myOrientation==4)
{
ballX-=speedX;
}
if (myOrientation==5)
{
ballX+=speedX;
}
if (myOrientation==6)
{
ballY-=speedY;
}
if (myOrientation==7)
{
ballY+=speedY;
}
println(a);
println(b);
text("SCORE: "+a+":"+b, 550, 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;
red=0;
blue=255;
}
}
}
}


沒有留言:
張貼留言