Jypeli
10
The simple game programming library
AndroidAccelerometer.cs
Siirry tämän tiedoston dokumentaatioon.
1
//using System;
2
//using Microsoft.Xna.Framework;
3
// TODO: .NET Core 3.0 does not support Android.
4
// fix using Xamarin.Android, or wait for .NET 5.0 coming in november 2020?
5
6
//using XnaAccelerometer = Microsoft.Devices.Sensors.Accelerometer;
7
8
//namespace Jypeli.Android
9
//{
10
// public class AndroidAccelerometer : Accelerometer
11
// {
12
// private readonly XnaAccelerometer _accelerometer = null;
13
14
// public AndroidAccelerometer()
15
// : base()
16
// {
17
// _accelerometer = new XnaAccelerometer();
18
// CurrentState = PrevState = new Vector3( 0, 1, 0 );
19
// }
20
21
// /// <summary>
22
// /// Käynnistää kiihtyvyysanturin.
23
// /// </summary>
24
// public override void Start()
25
// {
26
// if ( _accelerometer == null || started )
27
// return;
28
29
// _accelerometer.Start();
30
// base.Start();
31
// }
32
33
// /// <summary>
34
// /// Pysäyttää kiihtyvyysanturin.
35
// /// </summary>
36
// public override void Stop()
37
// {
38
// if ( _accelerometer == null || !started )
39
// return;
40
41
// _accelerometer.Stop();
42
// base.Stop();
43
// }
44
45
// internal override Vector Project2d( Vector3 spaceVector )
46
// {
47
// spaceVector = Transform3d( spaceVector );
48
49
// switch ( Calibration )
50
// {
51
// case AccelerometerCalibration.ZeroAngle:
52
// return new Vector( spaceVector.X, spaceVector.Y );
53
// case AccelerometerCalibration.HalfRightAngle:
54
// return new Vector( spaceVector.X, spaceVector.Y - spaceVector.Z );
55
// case AccelerometerCalibration.RightAngle:
56
// return new Vector( spaceVector.X, -spaceVector.Z );
57
// default:
58
// return new Vector( spaceVector.X, spaceVector.Y );
59
// }
60
// }
61
62
// private void UpdateDisplayOrientation( Vector3 e )
63
// {
64
// if ( e.Z > 0.8 )
65
// return;
66
67
// double angle = Math.Atan2( -e.X, e.Y ) * 180.0 / Math.PI;
68
// double delta = 5;
69
70
// if ( angle > -45 + delta && angle < 45 - delta )
71
// Game.Device.DisplayOrientation = DisplayOrientation.Portrait;
72
// else if ( angle > 45 + delta && angle < 135 - delta )
73
// Game.Device.DisplayOrientation = DisplayOrientation.LandscapeRight;
74
// else if ( angle > -135 + delta && angle < -45 - delta )
75
// Game.Device.DisplayOrientation = DisplayOrientation.LandscapeLeft;
76
// else
77
// Game.Device.DisplayOrientation = DisplayOrientation.PortraitInverse;
78
// }
79
80
// internal override Vector3 GetState()
81
// {
82
// if ( _accelerometer == null || !started )
83
// return PrevState;
84
85
// var e = _accelerometer.CurrentValue.Acceleration;
86
// UpdateDisplayOrientation( e );
87
88
// return new Vector3( e.X, e.Y, e.Z );
89
// }
90
91
// private Vector3 Transform3d( Vector3 e )
92
// {
93
// int xmul = DisplayOrientation.Xmul;
94
// int ymul = DisplayOrientation.Ymul;
95
// return new Vector3( xmul * e.Y - ymul * e.X, -xmul * e.X - ymul * e.Y, -e.Z );
96
97
// /*switch ( DisplayOrientation )
98
// {
99
// case DisplayOrientation.Landscape:
100
// case DisplayOrientation.LandscapeLeft:
101
// return new Vector3( e.Y, -e.X, -e.Z );
102
// case DisplayOrientation.LandscapeRight:
103
// return new Vector3( -e.Y, e.X, -e.Z );
104
// case DisplayOrientation.PortraitInverse:
105
// return new Vector3( e.X, e.Y, -e.Z );
106
// case DisplayOrientation.Portrait:
107
// default:
108
// return new Vector3( -e.X, -e.Y, -e.Z );
109
// }*/
110
// }
111
// }
112
//}
Jypeli
Android
AndroidAccelerometer.cs
Generoinut projektille Jypeli Tue Sep 14 2021 15:57:41
1.9.2