Spiel mit Bewegungssensor steuern

  • Antworten:6
Hans Müller
  • Forum-Beiträge: 10

23.11.2012, 17:45:48 via Website

Hi,

ich möchte ein Spiel machen, bei dem sich ein Männchen nach rechts/links bewegt wenn man das Handy nach rechts/links kippt (vgl. Doodle Jump etc.). Ich weiß aber nicht wie ich die Sensordaten auslesen/interpretieren soll. Ich weiß dass es was mit Sensor, SensorManager und SensorEvent zu tun hat, aber das Problem ist eben die Daten auszuwerten. Kann mir jemand helfen?

Danke
mfg

Hans

Antworten
NewAndroidGuy
  • Forum-Beiträge: 62

23.11.2012, 18:12:25 via Website

Ich bin zwar kein Experte dafür aber du brauchst Die android orientationsensoren

guck mal hier:

http://www.helloandroid.com/tutorials/using-android-phones-sensors

das sieht gbut aus da du einen wert bekommst den man ich pixel oder einheiten umrechnen kann

Antworten
Hans Müller
  • Forum-Beiträge: 10

23.11.2012, 18:30:10 via Website

danke

Antworten
NewAndroidGuy
  • Forum-Beiträge: 62

24.11.2012, 11:49:23 via Website

Immer wieder gerne :D

Antworten
Hans Müller
  • Forum-Beiträge: 10

24.11.2012, 18:45:01 via Website

Nur noch eine Frage. Ist das eine Änderung auf der x, y oder z- Achse?

Antworten
Hans Müller
  • Forum-Beiträge: 10

30.11.2012, 18:35:45 via Website

Die zeile: outputX.setText("x:" + Float.toString(event.values[0])); schmeißt aus irgendeinem Grund ne NullpointerException, weiß jemand wiso?

Hier der Code:

1package com.example.sensortest;
2
3import android.app.Activity;
4import android.hardware.Sensor;
5import android.hardware.SensorEvent;
6import android.hardware.SensorEventListener;
7import android.hardware.SensorManager;
8import android.os.Bundle;
9import android.util.Log;
10import android.widget.TextView;
11
12public class MainActivity extends Activity implements SensorEventListener {
13
14 SensorManager sensorManager = null;
15
16 TextView outputX, outputY, outputZ;
17
18 @Override
19 protected void onCreate(Bundle savedInstanceState) {
20 super.onCreate(savedInstanceState);
21 setContentView(R.layout.activity_main);
22
23 outputX = (TextView) findViewById(R.id.outputX);
24 outputY = (TextView) findViewById(R.id.outputY);
25 outputZ = (TextView) findViewById(R.id.outputZ);
26
27 sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
28
29 }
30
31 @Override
32 protected void onResume() {
33 super.onResume();
34
35 sensorManager.registerListener(this,
36 sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
37 SensorManager.SENSOR_DELAY_GAME);
38
39 }
40
41 @Override
42 protected void onStop() {
43 super.onStop();
44
45 sensorManager.unregisterListener(this,
46 sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION));
47
48 }
49
50 @Override
51 public void onAccuracyChanged(Sensor sensor, int accuracy) {
52
53 }
54
55 @Override
56 public void onSensorChanged(SensorEvent event) {
57
58 Log.d("check", Boolean.toString(event != null));
59
60 outputX.setText("x:" + Float.toString(event.values[0]));
61 outputY.setText("y:" + Float.toString(event.values[1]));
62 outputZ.setText("z:" + Float.toString(event.values[2]));
63
64 }
65
66}

— geändert am 30.11.2012, 18:36:31

Antworten
NewAndroidGuy
  • Forum-Beiträge: 62

30.11.2012, 22:19:21 via Website

event.values[0])

überprüfe folgendes: ist der Textview erzeugt (-> über xml definiert)
da "x" ein einfacher String ist schätze ich, dass event.values[0]) der Fehler ist
mach mal bitte:

System.out.println(event.values[0]) wenn da der fehler kommt musst du das ändern !!!
sonst guck mal ob der TextView überhaupt erzeugt wurde !!!

wenn es dann immer noch nicht klappt schreib einfach rein kannst mir auch ne e-mail schreiben

Antworten