async private void Accelerometer_ReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { if (args.Reading.AccelerationY < -Threshold) { this.Orientation = RoughOrientation.Down; } else if (args.Reading.AccelerationY > Threshold) { this.Orientation = RoughOrientation.Up; } else if (args.Reading.AccelerationX < -Threshold) { this.Orientation = RoughOrientation.Left; } else if (args.Reading.AccelerationX > Threshold) { this.Orientation = RoughOrientation.Right; } else if (args.Reading.AccelerationZ < -Threshold) { this.Orientation = RoughOrientation.Forward; } else if (args.Reading.AccelerationZ > Threshold) { this.Orientation = RoughOrientation.Back; } else { this.Orientation = RoughOrientation.None; } if (args.Reading.AccelerationX <= 0) { (this.leftRect.RenderTransform as CompositeTransform).ScaleY = -args.Reading.AccelerationX + 0.1; (this.rightRect.RenderTransform as CompositeTransform).ScaleY = 0.1; } else { (this.leftRect.RenderTransform as CompositeTransform).ScaleY = 0.1; (this.rightRect.RenderTransform as CompositeTransform).ScaleY = args.Reading.AccelerationX + 0.1; } if (args.Reading.AccelerationZ <= 0) { (this.forwardRect.RenderTransform as CompositeTransform).ScaleY = -args.Reading.AccelerationZ -0.1; } else { (this.forwardRect.RenderTransform as CompositeTransform).ScaleY = 0.1; } if (activateButtonDown) { // check magnitudes if ((this.leftRect.RenderTransform as CompositeTransform).ScaleY >= (this.rightRect.RenderTransform as CompositeTransform).ScaleY && (this.leftRect.RenderTransform as CompositeTransform).ScaleY >= (this.forwardRect.RenderTransform as CompositeTransform).ScaleY) { this.background.Fill = this.leftRect.Fill; } else if ((this.rightRect.RenderTransform as CompositeTransform).ScaleY >= (this.leftRect.RenderTransform as CompositeTransform).ScaleY && (this.rightRect.RenderTransform as CompositeTransform).ScaleY >= (this.forwardRect.RenderTransform as CompositeTransform).ScaleY) { this.background.Fill = this.rightRect.Fill; } else { this.background.Fill = this.forwardRect.Fill; } } else { this.background.Fill = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0)); } //(this.rightRect.RenderTransform as CompositeTransform).ScaleY = args.Reading.AccelerationX; //(this.forwardRect.RenderTransform as CompositeTransform).ScaleY = -args.Reading.AccelerationZ; }); }
async private void Accelerometer_ReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { if (args.Reading.AccelerationY < -Threshold) { this.Orientation = RoughOrientation.Down; } else if (args.Reading.AccelerationY > Threshold) { this.Orientation = RoughOrientation.Up; } else if (args.Reading.AccelerationX < -Threshold) { this.Orientation = RoughOrientation.Left; } else if (args.Reading.AccelerationX > Threshold) { this.Orientation = RoughOrientation.Right; } else if (args.Reading.AccelerationZ < -Threshold) { this.Orientation = RoughOrientation.Forward; } else if (args.Reading.AccelerationZ > Threshold) { this.Orientation = RoughOrientation.Back; } else { this.Orientation = RoughOrientation.None; } if (args.Reading.AccelerationX <= 0) { (this.leftRect.RenderTransform as CompositeTransform).ScaleY = -args.Reading.AccelerationX + 0.1; (this.rightRect.RenderTransform as CompositeTransform).ScaleY = 0.1; } else { (this.leftRect.RenderTransform as CompositeTransform).ScaleY = 0.1; (this.rightRect.RenderTransform as CompositeTransform).ScaleY = args.Reading.AccelerationX + 0.1; } if (args.Reading.AccelerationZ <= 0) { (this.forwardRect.RenderTransform as CompositeTransform).ScaleY = -args.Reading.AccelerationZ - 0.1; } else { (this.forwardRect.RenderTransform as CompositeTransform).ScaleY = 0.1; } if (activateButtonDown) { // check magnitudes if ((this.leftRect.RenderTransform as CompositeTransform).ScaleY >= (this.rightRect.RenderTransform as CompositeTransform).ScaleY && (this.leftRect.RenderTransform as CompositeTransform).ScaleY >= (this.forwardRect.RenderTransform as CompositeTransform).ScaleY) { this.background.Fill = this.leftRect.Fill; } else if ((this.rightRect.RenderTransform as CompositeTransform).ScaleY >= (this.leftRect.RenderTransform as CompositeTransform).ScaleY && (this.rightRect.RenderTransform as CompositeTransform).ScaleY >= (this.forwardRect.RenderTransform as CompositeTransform).ScaleY) { this.background.Fill = this.rightRect.Fill; } else { this.background.Fill = this.forwardRect.Fill; } } else { this.background.Fill = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0)); } //(this.rightRect.RenderTransform as CompositeTransform).ScaleY = args.Reading.AccelerationX; //(this.forwardRect.RenderTransform as CompositeTransform).ScaleY = -args.Reading.AccelerationZ; }); }