把米奇加上去,期末作業完成拉~
import SimpleOpenNI.*;
import saito.objloader.*;
import ddf.minim.*;
OBJModel model, model1, man;
PImage boom, bg, lose, win;
Minim m;
AudioPlayer bgmus, hit;
void setup()
{
size(600, 400, P3D);
model = new OBJModel(this, "lefthand2.obj", "absolute", TRIANGLES);
model.enableDebug();
model1 = new OBJModel(this, "righthand.obj", "absolute", TRIANGLES);
model1.enableDebug();
man=new OBJModel(this, "MickeyMouse.obj", "relative", TRIANGLES);
man.enableDebug();
boom=loadImage("boom.jpg");
lose=loadImage("loser.jpg");
win=loadImage("winner2.jpg");
bg=loadImage("bg.png");
m=new Minim(this);
hit=m.loadFile("punch.wav");
bgmus=m.loadFile("bg.mp3");
}
int coolDown=100;
float ballz=0;
float hookAngle=0;
int hooktype=0;
float mhookAngle=0;
int timerBoom=0;
int user=0;
int user1=0;
int blooduser=600;
int bloodman=600;
int lnohit=0;
int rnohit=0;
int dnohit=0;
void draw()
{
bgmus.play();
if (timerBoom>0) {
image(boom, 0, 0, 600, 400);
timerBoom--;
return;
}
background(255);
noStroke();
lights();
pushMatrix();
scale(0.2);
translate(1500, 1000,-500);
man.draw();
popMatrix();
noLights();
fill(255, 0, 0);
rect(0, 350, blooduser, 50);
fill(255, 0, 0);
rect(0, 0, bloodman, 50);
if (blooduser<=0)
{
image(lose, 0, 0, 600, 400);
return ;
}
if (bloodman<=0)
{
image(win, 0, 0, 600, 400);
return ;
}
if (coolDown>0) {
coolDown--;
return;
}
if (user==1)
{
pushMatrix();
noStroke();
lights();
translate(300, 0, -200);
translate(cos(mhookAngle)*200, 200, 550-sin(mhookAngle)*200);
//translate(300,300);
rotateY(mhookAngle+90);
println(mhookAngle);
model1.draw();
mhookAngle+=0.01;
popMatrix();
if (mhookAngle>=1.6)
{
hit.rewind();
hit.play();
mhookAngle=0;
user=0;
bloodman-=50;
}
}
if (user1==1)
{
pushMatrix();
noStroke();
lights();
translate(200, 0, 200);
translate(50+cos(mhookAngle)*100, 200, 100+sin(mhookAngle)*200);
//translate(300,300);
// rotateX(30);
rotateY(-180);
println("=================="+mhookAngle);
model.draw();
mhookAngle+=0.09;
popMatrix();
if (mhookAngle>=4.5)
{
hit.rewind();
hit.play();
mhookAngle=0;
user1=0;
bloodman-=50;
}
}
if (hooktype==0)
{
println("hooking_right");
pushMatrix();
noStroke();
lights();
translate(300+sin(hookAngle)*150, 200, -cos(hookAngle)*300);
//translate(300,300);
rotateY(-hookAngle+90);
println(hookAngle);
model.draw();
hookAngle+=0.04;
popMatrix();
if (hookAngle>=3)
{
if (rnohit==0)
{
hit.rewind();
hit.play();
println("****************************");
blooduser-=50;
timerBoom=60;
}
image(boom, 300, 200, 600, 400);
rnohit=0;
reset();
}
}
if (hooktype==1)
{
println("hooking");
pushMatrix();
noStroke();
lights();
translate(300-sin(hookAngle)*150, 200, -cos(hookAngle)*300);
// translate(300,300);
rotateY(hookAngle+180);
println(hookAngle+180);
model1.draw();
hookAngle+=0.04;
popMatrix();
if (hookAngle>=3)
{
if (lnohit==0)
{
hit.rewind();
hit.play();
println("ye=============================s");
blooduser-=50;
timerBoom=60;
}
lnohit=0;
image(boom, 100, 100, 600, 400);
reset();
}
}
if (hooktype==2) {
pushMatrix();
noStroke();
lights();
translate(300, 200, ballz);
fill(255, 0, 0);
sphere(28);
println("Ballz"+ballz);
ballz+=5;
if (ballz==400)
{
if (dnohit==0)
{
hit.rewind();
hit.play();
println("++++++++++++++++++++");
blooduser-=50;
timerBoom=60;
}
dnohit=0;
println("hookball");
reset();
}
popMatrix();
}
}
void reset() {
hookAngle=0;
hooktype=int(random(3));
ballz=0;
coolDown=100;
}
void keyPressed()
{
if (key=='r')
{
rnohit=1;
}
if (key=='l')
{
lnohit=1;
}
if (key=='a')
{
user=1;
}
if (key=='w')
{
user1=1;
}
}
void keyReleased()
{
if (key=='d')
{
dnohit=1;
println("head is down");
}
if (key=='a')
{
}
}

沒有留言:
張貼留言