2015年5月18日 星期一

week13

跳出很多水果球
import SimpleOpenNI.*;
SimpleOpenNI openni;
class Fruit {
  float X, Y, VX, VY;
  Fruit(float x, float y, float vx, float vy) {
    X=x;
    Y=y;
    VX=vx;
    VY=vy;
  }
  void draw() {
    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);
    }
  }
}
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();
    }
  }

畫出線碰到
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(30)-15;
      VY=-random(30);
      dead=false;
    }
    if(dist(X,Y,mouseX,mouseY)<50) 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();
    }
  }
偵測人體碰到
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(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();
    }
  }


水果爆溜~~~~
import SimpleOpenNI.*;
SimpleOpenNI openni;
PImage imUser;
class Fruit {
  float X, Y, VX, VY,split=0,angle=0;
  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);
      arc(X+split,Y,50,50,angle,angle+PI,CHORD);
      arc(X-split,Y,50,50,angle+PI,angle+PI*2,CHORD);
    }
    else{ fill(255);ellipse(X, Y, 50, 50);}
  }
  void update() {
    X+=VX/2; 
    Y+=VY/2; 
    VY+=0.5/2;
    if (X<-100||X>740||Y<-100||Y>580) {
      X=random(640);
      Y=random(240);
      VX=random(10)-15;
      VY=-random(10);
      dead=false;
      split=0;
    }
    if(dead==false&&dist(X,Y,mouseX,mouseY)<50){
      dead=true;
      angle = atan2(mouseY-pmouseY,mouseX-pmouseX);
    }
    if(dead==false&&X>0 && X<640 &&Y>0 &&Y<480 &&openni.userImage().pixels[int(X)+int(Y)*640]==color(0,0,255)) {
    dead=true;
    }
    if(dead) split+=2;
  }
}
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<5; i++) 
    fruit[i] = new Fruit(random(640), random(240), random(10)-15, -random(10));
  }
  void draw() {
    openni.update();
    image(openni.userImage(), 0, 0);
    for (int i=0; i<5; i++) {
      fruit[i].draw();
      fruit[i].update();
    }
  }

沒有留言:

張貼留言