我有以下代码,用 kinect 实现:
private void ProcessForwardBackGesture(Joint head, Joint rightHand, Joint leftHand, Joint hip, Joint leftKnee, Joint rightKnee)
{
if (rightHand.Position.X > head.Position.X + 0.45)
{
OnGestureDetected("SwipeToRight");
System.Windows.Forms.SendKeys.SendWait("{Right}");
}
if (leftHand.Position.X < head.Position.X - 0.45)
{
OnGestureDetected("SwipeToLeft");
System.Windows.Forms.SendKeys.SendWait("{Left}");
}
if (rightHand.Position.Y > (hip.Position.Y + 0.20))
{
OnGestureDetected("UP");
System.Windows.Forms.SendKeys.SendWait("{Up}");
}
if (rightHand.Position.Y < (hip.Position.Y - 0.20))
{
OnGestureDetected("DOWN");
System.Windows.Forms.SendKeys.SendWait("{Down}");
}
if ((leftKnee.Position.Y > hip.Position.Y - 0.30))
{
OnGestureDetected("Space");
System.Windows.Forms.SendKeys.SendWait("{Space}");
}
if ((rightKnee.Position.Y > hip.Position.Y - 0.30))
{
OnGestureDetected("Alt");
System.Windows.Forms.SendKeys.SendWait("{Alt}");
}
}
OnGestureDetected 函数向我展示了控制台中发生的情况。现在如果我保持一个姿势,在控制台中,那个键会出现,直到我离开那个姿势。在记事本中,如果我有很长的文本,它会按照我的姿势定义的方向不断滚动。但是在 3D 游戏或 java 游戏(带有 chrome)中,它只给出一个脉冲,然后什么也不做。我怎样才能让它保持那个脉冲。我想创建一个程序,以便能够使用 kinect 玩赛车游戏。