2016年3月17日 星期四

Week04_02160323_class





import de.voidplus.leapmotion.*;
LeapMotion leap;
void setup(){
  size(600,580);
  leap=new LeapMotion(this);
}
void draw(){
  background(255);
  for(Hand hand : leap.getHands()){       //抓到可愛的小食指
    Finger finger_index = hand.getIndexFinger();
    finger_index.draw();   }
}
-------------------------------------------------------------------------------------------------------------

















import de.voidplus.leapmotion.*;
LeapMotion leap;
void setup(){
  size(600,580,P3D);      //劃出一個三D模型
  leap=new LeapMotion(this);
}
void draw(){
  background(255);
  for(Hand hand : leap.getHands()){
    Finger finger_index = hand.getIndexFinger();
    finger_index.draw();
    PVector pos = finger_index.getPosition();
    PVector dir = finger_index.getDirection();
    println(pos);
    println(dir);
  }
  lights();
  fill(255,0,0);
  translate(width/2,height/2);          //把模型放在視窗中間
  rotateY(radians(frameCount));           //讓3D模型旋轉
  box(300,100,100);
}



--------------------------------------------------------------------------------------------------------------------

















import de.voidplus.leapmotion.*;
LeapMotion leap;
void setup(){
  size(600,580,P3D);
  leap=new LeapMotion(this);
}
PVector pos=null,dir=null;
void draw(){
  background(255);
  for(Hand hand : leap.getHands()){
    Finger finger_index = hand.getIndexFinger();
    finger_index.draw();
    pos = finger_index.getPosition();
    dir = finger_index.getDirection();
 
  }
  lights();
  fill(255,0,0);
  pushMatrix();
    translate(width/2,height/2);
     for(int i=0;i<10;i++){
      if(dir!=null)  translate(dir.x*10*i,dir.y*10*i,dir.z*10*i);
       sphere(40);
     }
  popMatrix();
  //rotateY(radians(frameCount));
  //box(300,100,100);                                                      //畫個圈圈
}

--------------------------------------------------------------------------------------------------------------------------



import de.voidplus.leapmotion.*;
PVector pos=null,dir=null;
PVector []bullet=new PVector[10];
PVector []bullet_dir=new PVector[10];               //有10顆子彈
int bulletNow=0;
LeapMotion leap;
void setup(){
  size(600,800,P3D);
  leap = new LeapMotion(this);
  for(int i=0;i<10;i++){
    bullet[i]=new PVector(0,0,0);
    bullet_dir[i]=new PVector(0,0,0);
   }
}
void draw(){
  background(255);
  for(Hand hand: leap.getHands()){
    Finger finger_index = hand.getIndexFinger();
    finger_index.draw();
    dir = finger_index.getDirection();
  }
  lights();
  fill(255,0,0);
  translate(width/2,height/2);
  pushMatrix();
    for(int i=0;i<10;i++){
      if(dir!=null) translate(dir.x*10*i,dir.y*10*i,dir.z*10*i);
      sphere(40);
    }
   popMatrix();
   pushMatrix();
     fill(0,0,255);
     for(int i=0;i<10;i++){
       pushMatrix();
         translate(bullet[i].x,bullet[i].y,bullet[i].z);              //子彈發射跟著手指
         sphere(41);
          bullet[i].x +=bullet_dir[i].x;
          bullet[i].y +=bullet_dir[i].y;
          bullet[i].z +=bullet_dir[i].z;
          popMatrix();
     }
     popMatrix();
}
void keyPressed(){
  bullet_dir[bulletNow].x=dir.x*5;                      //子彈速度*5倍
  bullet_dir[bulletNow].y=dir.y*5;
  bullet_dir[bulletNow].z=dir.z*5;
  bulletNow++;     }
----------------------------------------------------------------------------------------------------------------------















import de.voidplus.leapmotion.*;
PVector pos=null,dir=null;
PVector []bullet=new PVector[10];
PVector []bullet_dir=new PVector[10];
int bulletNow=0;
LeapMotion leap;
void setup(){
  size(600,800,P3D);
  leap = new LeapMotion(this);
  for(int i=0;i<10;i++){
    bullet[i]=new PVector(0,0,0);
    bullet_dir[i]=new PVector(0,0,0);
   }
}
void draw(){
  background(255);
  for(Hand hand: leap.getHands()){
    Finger finger_index = hand.getIndexFinger();
    finger_index.draw();
    dir = finger_index.getDirection();
  }
  lights();
  fill(255,0,0);
  translate(width/2,height/2);
  pushMatrix();
    for(int i=0;i<10;i++){
      if(dir!=null) translate(dir.x*10*i,dir.y*10*i,dir.z*10*i);
      sphere(40);
    }
   popMatrix();
   pushMatrix();
     fill(0,0,255);
     for(int i=0;i<10;i++){
       pushMatrix();
         translate(bullet[i].x,bullet[i].y,bullet[i].z);
         sphere(41);
          bullet[i].x +=bullet_dir[i].x;
          bullet[i].y +=bullet_dir[i].y;
          bullet[i].z +=bullet_dir[i].z;
          popMatrix();
     }
     popMatrix();
}
void keyPressed(){
  bullet[bulletNow].x=0;bullet[bulletNow].y=0;bullet[bulletNow].z=0;
  bullet_dir[bulletNow].x=dir.x*5;
  bullet_dir[bulletNow].y=dir.y*5;
  bullet_dir[bulletNow].z=dir.z*5;
  bulletNow++;                          //增加這三行可以使畫面更順,讓子彈回收,取之不盡用之不竭
  if(bulletNow>=10){
    bulletNow=0;
  }
}


-------------------------------------------------------------------------------------------------------------------------




import de.voidplus.leapmotion.*;
LeapMotion leap;
PVector pos,dir,ball;
void setup(){
  size(600,600,P3D);
  leap= new LeapMotion(this);
  pos= new PVector (300,200,0);ball=new PVector(0,0,0);
}
void draw(){
  ball.x+=2; ball.y+=2;
  for(Hand hand : leap.getHands()){
    pos= hand.getPosition();
  }
  background(255);
  fill(255,0,0);
  pushMatrix();
  translate(pos.x,pos.y,pos.z);
  box(30,30,30);
  popMatrix();
  pushMatrix();
    translate(ball.x,ball.y);
    sphere(30);
    if(dist(ball.x,ball.y,pos.x,pos.y)<30 )background(255,0,0);
    popMatrix();
}                        //劃出一個圓碰到方塊螢幕會變成紅色


沒有留言:

張貼留言