2015年5月18日 星期一

week13



import SimpleOpenNI.*;
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(10)-5;  VY=-random(10);
    }
    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.enableRGB();
  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() {
  background(255);
  openni.update();
  image(openni.userImage(), 0, 0);
  for (int i=0; i<20; i++) {
    fruit[i].draw();
    fruit[i].update();
  }
}

沒有留言:

張貼留言