Bewegungssensor spinnt?

  • 0 Antworten
  • Letztes Antwortdatum
D

DQQpy

Neues Mitglied
0
Hallo zusammen,

ich habe ein Problem mit meinem Spiel für Android, und zwar spuckt der Bewegungssensor komische und scheinbar zufällige Werte aus.

Manchmal funktioniert es perfekt, aber wenn man das Handy ein wenig dreht oder in der Hose lässt dann spielen die Werte wieder verrückt.
Meistens sind die Werte bei gerader Lage des Handys sehr groß, obwohl sie 0 sein müssten.
Ab und zu springt er schnell von positiv zu negativ wenn man das Handy auch nur leicht dreht, und manchmal ist die Steuerung einfach komplett umgedreht.

Zuerst hab ich gedacht dass das Problem was mit dem Gimp Lock/Kardanische Blockade zu tun hat und eine Grenze für die Werte bei 0.2 eingebaut, doch
am nächsten Tag ging es wieder von vorne los.
Ich erkenne da absoult kein Schema oder Muster hinter diesem Fehler :S


Hier mal ein paar Codeschnippsel:

GameActivity.class:
Code:
protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		overridePendingTransition(0, 0);
		setContentView(R.layout.game_layout);
		sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
		sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR);
...
}

Code:
protected void onResume() {
		super.onResume();
		sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME);
...
	}

Code:
protected void onPause() {
		super.onPause();
		sensorManager.unregisterListener(this);
...
	}

Code:
public void onSensorChanged(SensorEvent event) {
				if (event.sensor.getType() != Sensor.TYPE_ROTATION_VECTOR)
		            return;
				if(this.isRunning()) {
					if(Math.abs(event.values[0]) < 0.2) {
						spieler.setMoveSpeed(event.values[0]);
					}

				}
		
	}

Danke für jede Hilfe :)

MfG

Der ursprüngliche Beitrag von 22:45 Uhr wurde um 23:43 Uhr ergänzt:

Nach Neustart des Handys ist der Bug kaum reproduzierbar...
Erst nach mehreren Anläufen sprang der Wert plötzlich von -0.165 auf +0.165 und 30 werte später wieder zurück.
Außerdem fiel mir eine Ausgabe auf:
01-09 23:27:02.247: D/SensorManager(9232): onSensorChangedLockedCalledCount = 1000, size = 1, listener = android.hardware.SystemSensorManager$ListenerDelegate@41237a40
Bei Google fand er darüber quasi nichts. Hat jemand eine Ahnung was das bedeutet?
 
Zurück
Oben Unten