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; }