2015年5月18日 星期一

Week13

水果忍者partI
製作出許多水果
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();
  }
}

水果忍者partII
製作出刀鋒

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()
  {
    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();
  }
}

水果忍者partIII
製作切水果特效
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+=0.68;
    if(X<-100 || X>740 || Y<-100 || Y>580)
    {
      X=random(640);Y=random(240);VX=random(10)-5;VY=-random(10);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();
  }
}

水果忍者partVI
切水果囉
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;Y+=VY;VY+=0.68;
    if(X<-100 || X>740 || Y<-100 || Y>580)
    {
      X=random(640);Y=random(240);VX=random(10)-5;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(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<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();
  }
}


沒有留言:

張貼留言