C# 如何使用kinect控制赛车游戏?
我正在尝试使用kinect(使用visual studio c#)控制一些在线flash赛车游戏。 用户需要把手举在空中,表现得像在汽车方向盘后面一样。 要提高速度,用户需要将(假想的)方向盘从身体上移开 问题是,每当我向左或向右转弯时,我的车只会停在那一边。。。。。它不会回来,即使在努力尝试和转向相反的方向 我正在使用一个名为VirtualKeyboard的类,该类具有keyUp和keyDown方法。 这是完整的代码-C# 如何使用kinect控制赛车游戏?,c#,uigesturerecognizer,kinect,game-development,C#,Uigesturerecognizer,Kinect,Game Development,我正在尝试使用kinect(使用visual studio c#)控制一些在线flash赛车游戏。 用户需要把手举在空中,表现得像在汽车方向盘后面一样。 要提高速度,用户需要将(假想的)方向盘从身体上移开 问题是,每当我向左或向右转弯时,我的车只会停在那一边。。。。。它不会回来,即使在努力尝试和转向相反的方向 我正在使用一个名为VirtualKeyboard的类,该类具有keyUp和keyDown方法。 这是完整的代码- /////////////// GAME MODE (Racing
/////////////// GAME MODE (Racing games) /////////////////////////
if ((leftHand.Position.Y > hipCentre.Position.Y) && (rightHand.Position.Y > hipCentre.Position.Y))
{
//Keyboard.GetKeyStates();
if (Math.Abs(leftHand.Position.Y - rightHand.Position.Y) > 0.15)
{
if (leftHand.Position.Y > rightHand.Position.Y)
{
//System.Windows.Forms.SendKeys.SendWait(" {RIGHT}");
VirtualKeyboard.KeyUp(System.Windows.Forms.Keys.Left);
VirtualKeyboard.KeyDown(System.Windows.Forms.Keys.Right);
message += System.Environment.NewLine + "Right keys are pressed.";
}
else
{
//System.Windows.Forms.SendKeys.SendWait(" {LEFT}");
VirtualKeyboard.KeyUp(System.Windows.Forms.Keys.Right);
VirtualKeyboard.KeyDown(System.Windows.Forms.Keys.Left);
message += System.Environment.NewLine + "Left keys are pressed.";
}
}
else
{
VirtualKeyboard.KeyUp(System.Windows.Forms.Keys.Right);
VirtualKeyboard.KeyUp(System.Windows.Forms.Keys.Left);
}
if ((hipCentre.Position.Z - leftHand.Position.Z > 0.2) && (hipCentre.Position.Z - rightHand.Position.Z > 0.2))
{
//System.Windows.Forms.SendKeys.SendWait("{UP}");
VirtualKeyboard.KeyDown(System.Windows.Forms.Keys.Up);
message += System.Environment.NewLine + "- UP pressed -";
}
else
{
VirtualKeyboard.KeyUp(System.Windows.Forms.Keys.Up);
}
}
VirtualKeyboard类如下所示-
public static class VirtualKeyboard
{
[DllImport("user32.dll")]
static extern uint keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
public static void KeyDown(System.Windows.Forms.Keys key)
{
keybd_event((byte)key, 0, 0, 0);
}
public static void KeyUp(System.Windows.Forms.Keys key)
{
keybd_event((byte)key, 0, 0x7F, 0);
}
}
任何其他代码都是受欢迎的。
抱歉,我没有评论代码:-P