示例#1
0
        public static LProcess.AccelerometerState GetState()
        {
            if (!isInitialized)
            {
                throw new InvalidOperationException("You must Initialize before you can call GetState");
            }

            Vector3 stateValue = new Vector3();

#if WINDOWS_PHONE
            if (isActive)
            {
                if (Microsoft.Devices.Environment.DeviceType == Microsoft.Devices.DeviceType.Device)
                {
                    lock (threadLock)
                    {
                        stateValue = nextValue;
                    }
                }
                else
                {
                    //°´¼üÄ£Äâ
                    Microsoft.Xna.Framework.Input.KeyboardState keyboardState = Microsoft.Xna.Framework.Input.Keyboard.GetState();

                    stateValue.Z = -1;

                    if (keyboardState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Left))
                    {
                        stateValue.X--;
                    }
                    if (keyboardState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Right))
                    {
                        stateValue.X++;
                    }
                    if (keyboardState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Up))
                    {
                        stateValue.Y++;
                    }
                    if (keyboardState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Down))
                    {
                        stateValue.Y--;
                    }
                    stateValue.Normalize();
                }
            }
#endif
            LProcess.AccelerometerState state = new LProcess.AccelerometerState(stateValue, isActive);
            if (LSystem.screenProcess != null)
            {
                LSystem.screenProcess.OnSensorChanged(state);
            }
            return(state);
        }
        public static LProcess.AccelerometerState GetState()
        {
            if (!isInitialized)
            {
                throw new InvalidOperationException("You must Initialize before you can call GetState");
            }

            Vector3 stateValue = new Vector3();

            #if WINDOWS_PHONE
            if (isActive)
            {
                if (Microsoft.Devices.Environment.DeviceType == Microsoft.Devices.DeviceType.Device)
                {
                    lock (threadLock)
                    {
                        stateValue = nextValue;
                    }
                }
                else
                {
                    //����ģ��
                    Microsoft.Xna.Framework.Input.KeyboardState keyboardState = Microsoft.Xna.Framework.Input.Keyboard.GetState();

                    stateValue.Z = -1;

                    if (keyboardState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Left))
                    {
                        stateValue.X--;
                    }
                    if (keyboardState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Right))
                    {
                        stateValue.X++;
                    }
                    if (keyboardState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Up))
                    {
                        stateValue.Y++;
                    }
                    if (keyboardState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Down))
                    {
                        stateValue.Y--;
                    }
                    stateValue.Normalize();
                }
            }
            #endif
            LProcess.AccelerometerState state = new LProcess.AccelerometerState(stateValue, isActive);
            if (LSystem.screenProcess != null)
            {
                LSystem.screenProcess.OnSensorChanged(state);
            }
            return state;
        }