期末作品: 穿牆遊戲
主要是先下載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);
}
沒有留言:
張貼留言