水果忍者-程式碼
SimpleOpenNI openni;
class Fruit {
float X, Y, VX, VY;
boolean dead=false;
Fruit(float x, float y, float vx, float vy) {
X=x;
Y=y;
VX=vx;
VY=vy;
dead=false;
}
void draw() {
if(dead) fill(255,0,.0);
else fill(255);
ellipse(X, Y, 50, 50);
}
void update() {
X+=VX;
Y+=VY;
VY+=1.98;
if (X<-100 || X>740 ||Y<-100 || Y>580) {
X=random(640);
Y=random(240);
VX=random(30)-15;
VY=-random(30);
dead=false;
}
if(dist(X,Y,mouseX,mouseY)<50) dead=true;
if(X>0 && X<640 && Y>0 && Y<480 && openni.userImage().pixels[int(X)+int(Y)*640]==color(0,0,255)) dead=true;
}
}
void mouseMoved(){
strokeWeight(30); stroke(255,0,0); line(mouseX,mouseY,pmouseX,pmouseY);
strokeWeight(1);stroke(0);
}
Fruit fruit[] = new Fruit[20];
void setup() {
size(640, 480);
openni = new SimpleOpenNI(this);
openni.enableDepth();
openni.enableUser();
for (int i=0; i<20; i++)
fruit[i] = new Fruit(random(640), random(240), random(30)-15, -random(30));
}
void draw() {
openni.update();
image(openni.userImage(), 0, 0);
for (int i=0; i<20; i++) {
fruit[i].draw();
fruit[i].update();
}
}
沒有留言:
張貼留言