2016年5月12日 星期四

02160040_周子伍, week12



期末作品: 穿牆遊戲








主要是先下載kinect SDK和FAAST


接著老師教我們打地鼠

以下為程式碼:
void setup()
{
size(600,400);
openni=new SimpleOpenNI(this);
openni.enableDepth();
openni.enableUser();
}
void draw()
{
  openni.update();
  background(255);
  image(openni.userImage(),0,0,300,200);
  int [] userList = openni.getUsers();
  PVector pos = new PVector(0,0,0);
  for(int userID : userList){
    openni.getJointPositionSkeleton(userID, SimpleOpenNI.SKEL_LEFT_HAND,pos);//抓取左手
  }
  ellipse(pos.x,pos.y,50,50);
  println (pos);
}
void onNewUser(SimpleOpenNI curContext,int userId){
  openni.startTrackingSkeleton(userId);
}

接下來會產生球


以下為程式碼:

import SimpleOpenNI.*;
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(640, 400);
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}
void stup(){
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}
void draw(){

  openni.update();
  background(255);
  image(openni.userImage(), 0, 0, 300, 200);
  int [] userList = openni.getUsers();
  PVector pos = new PVector (0, 0, 0);
  for(int userID : userList){
    openni.getJointPositionSkeleton(userID, SimpleOpenNI.SKEL_LEFT_HAND, pos);
  }
  ellipse(pos.x, pos.y, 50, 50);
  println(pos);
}
void onNewUser(SimpleOpenNI openni, int userId){
  openni.startTrackingSkeleton(userId);
}

多個球抓點

以下為程式碼:

import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(600,400);
   openni = new SimpleOpenNI(this);
   openni.enableRGB();
   openni.enableDepth();
   openni.enableUser();
}
void draw(){
   openni.update();
   background(255);
   image(openni.userImage(),0,0,640,480);
   PVector pos = new PVector(0,0,0);
   int [] userList = openni.getUsers();
   for(int userID : userList){
     openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_LEFT_HAND,pos);
     openni.convertRealWorldToProjective(pos,pos);
     fill(0,0,255);ellipse(pos.x,pos.y,50,50);
     openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_RIGHT_HAND,pos);
     openni.convertRealWorldToProjective(pos,pos);
     fill(255,0,0);ellipse(pos.x,pos.y,50,50);
     openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_HEAD,pos);
     openni.convertRealWorldToProjective(pos,pos);
     fill(255,255,0);ellipse(pos.x,pos.y,50,50);
   }
   ellipse(pos.x,pos.y,50,50);
   println(pos);
}
void onNewUser(SimpleOpenNI curContext,int userId){
  openni.startTrackingSkeleton(userId);


}




沒有留言:

張貼留言