Я реализовал пример кода и использовал «Joint.ID» вместо «Joint.Type», мне просто нужно решить, можно ли/как этот код постоянно проверять в цикле. Любые советы будут высоко ценится. Спасибо.
Примечания советы: -
void newSensor_AllFramesReady
срабатывает, когда синхронизированы Цвет/Глубина/Скелет. Я не совсем уверен, где разместить этот метод.checkHand
необходимо проверять в каждом раунде потока.
Код до сих пор: -
void newSensor_AllFramesReady(object sender, SkeletonFrameReadyEventArgs e)
{
//Get a skeleton
SkeletonFrame skeletonSet = e.SkeletonFrame;
SkeletonData skeleton = (from s in skeletonSet.Skeletons
where s.TrackingState == SkeletonTrackingState.Tracked
select s).FirstOrDefault();
if (skeleton == null)
{
return;
}
else if (skeleton != null)
{
checkHand(skeleton.Joints[JointID.Head], skeleton.Joints[JointID.HandRight], skeleton.Joints[JointID.HandLeft]);
}
}
public void checkHand(Joint head, Joint rhand, Joint lhand)
{
if (rhand.Position.X > head.Position.Y)
{
MessageBox.Show("Right hand up!");
}
else if (lhand.Position.Y > head.Position.Y)
{
MessageBox.Show("Left hand up!");
}
}