示例#1
0
        void Awake()
        {
            if (_instance != null)
            {
                Destroy(gameObject);
            }
            else
            {
                _instance = this;

                _inputMappers = new InputMapper[MAX_PLAYER_COUNT];

                Dictionary<string, InputContext> mappedContexts = InputMapperAsset.GetMappedContexts();

                for (int i = 0; i < MAX_PLAYER_COUNT; i++)
                {
                    _inputMappers[i] = new InputMapper(mappedContexts);
                }

                // Do the needed initial setup in the derived classes
                InitialSetup();
            }
        }
示例#2
0
        public void ProcessKinectCommands(InputManager inputManager)
        {
            inputManager.GameState.KinectVideoColors = kinectHandler.ColorImage;
            if (inputManager.GameState.IsKinectActive)
            {
                inputManager.GameState.IsInputActive = false;

                if (kinectHandler.Gesture == "TurnLeft")
                {
                    // Rotate left.
                    inputManager.GameState.IsInputActive    = true;
                    inputManager.GameState.AvatarYRotation += inputManager.GameState.TurningSpeed / 2;
                }

                if (kinectHandler.Gesture == "TurnRight")
                {
                    // Rotate right.
                    inputManager.GameState.IsInputActive    = true;
                    inputManager.GameState.AvatarYRotation -= inputManager.GameState.TurningSpeed / 2;
                }
                if (kinectHandler.Gesture == "MoveForward")
                {
                    inputManager.GameState.IsInputActive = true;
                    Matrix  forwardMovement = Matrix.CreateRotationY(inputManager.GameState.AvatarYRotation);
                    Vector3 v = new Vector3(0, 0, -inputManager.GameState.MovingSpeed);
                    v = Vector3.Transform(v, forwardMovement);
                    Vector3 avatarPosition = inputManager.GameState.AvatarPosition;
                    avatarPosition.Z += v.Z;
                    avatarPosition.X += v.X;
                    inputManager.GameState.AvatarPosition = avatarPosition;
                    //Console.WriteLine ("Avatar Postion:{0}", avatarPosition.ToString ());
                }
                if (kinectHandler.Gesture == "MoveBackward")
                {
                    inputManager.GameState.IsInputActive = true;
                    Matrix  forwardMovement = Matrix.CreateRotationY(inputManager.GameState.AvatarYRotation);
                    Vector3 v = new Vector3(0, 0, inputManager.GameState.MovingSpeed);
                    v = Vector3.Transform(v, forwardMovement);
                    Vector3 avatarPosition = inputManager.GameState.AvatarPosition;
                    avatarPosition.Z += v.Z;
                    avatarPosition.X += v.X;
                    inputManager.GameState.AvatarPosition = avatarPosition;
                }
                //if (kinectHandler.Gesture == "Swipe Up")
                //    {
                //    inputManager.GameState.IsInputActive = true;
                //    Matrix forwardMovement = Matrix.CreateRotationY (inputManager.GameState.AvatarYRotation);
                //    Vector3 v = new Vector3 (0, inputManager.GameState.MovingSpeed, 0);
                //    v = Vector3.Transform (v, forwardMovement);
                //    Vector3 avatarPosition = inputManager.GameState.AvatarPosition;
                //    avatarPosition.Y += v.Y;

                //    inputManager.GameState.AvatarPosition = avatarPosition;
                //    }

                //if (kinectHandler.Gesture == "Swipe Down")
                //    {
                //    inputManager.GameState.IsInputActive = true;
                //    Matrix forwardMovement = Matrix.CreateRotationY (inputManager.GameState.AvatarYRotation);
                //    Vector3 v = new Vector3 (0, -inputManager.GameState.MovingSpeed, 0);
                //    v = Vector3.Transform (v, forwardMovement);
                //    Vector3 avatarPosition = inputManager.GameState.AvatarPosition;
                //    avatarPosition.Y += v.Y;
                //    inputManager.GameState.AvatarPosition = avatarPosition;
                //    }

                //if (kinectHandler.Gesture == "Zoom In")
                //    {
                //    inputManager.GameState.CameraState += 1;
                //    inputManager.GameState.CameraState %= 3;
                //    }



                if (kinectHandler.Gesture == "Clear")
                {
                    inputManager.GameState.IsInputActive = false;
                    if (inputManager.GameState.ShowInfo)
                    {
                        inputManager.GameState.ShowInfo = false;
                    }
                    if (inputManager.GameState.ShowCursor)
                    {
                        inputManager.GameState.ShowCursor = false;
                    }
                }

                if (kinectHandler.Gesture == "Select")
                {
                    // Console.WriteLine (inputManager.GameState.ShowCursor);
                    if (inputManager.GameState.ShowCursor)
                    {
                        inputManager.GameState.ShowInfo = true;
                    }
                }

                if (kinectHandler.Gesture == "Wave Right")
                {
                    inputManager.GameState.ShowCursor = true;
                }

                if (inputManager.GameState.ShowCursor)
                {
                    inputManager.GameState.CursorScreenLocation = new Vector2(kinectHandler.ScaledRightHand.Position.X, kinectHandler.ScaledRightHand.Position.Y);
                }
            }
        }