Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用kinect控制赛车游戏?_C#_Uigesturerecognizer_Kinect_Game Development - Fatal编程技术网

C# 如何使用kinect控制赛车游戏?

C# 如何使用kinect控制赛车游戏?,c#,uigesturerecognizer,kinect,game-development,C#,Uigesturerecognizer,Kinect,Game Development,我正在尝试使用kinect(使用visual studio c#)控制一些在线flash赛车游戏。 用户需要把手举在空中,表现得像在汽车方向盘后面一样。 要提高速度,用户需要将(假想的)方向盘从身体上移开 问题是,每当我向左或向右转弯时,我的车只会停在那一边。。。。。它不会回来,即使在努力尝试和转向相反的方向 我正在使用一个名为VirtualKeyboard的类,该类具有keyUp和keyDown方法。 这是完整的代码- /////////////// GAME MODE (Racing

我正在尝试使用kinect(使用visual studio c#)控制一些在线flash赛车游戏。 用户需要把手举在空中,表现得像在汽车方向盘后面一样。 要提高速度,用户需要将(假想的)方向盘从身体上移开

问题是,每当我向左或向右转弯时,我的车只会停在那一边。。。。。它不会回来,即使在努力尝试和转向相反的方向

我正在使用一个名为VirtualKeyboard的类,该类具有keyUp和keyDown方法。 这是完整的代码-

    /////////////// 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