示例#1
0
        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;
            });
        }
示例#2
0
        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;
            });
        }