使用AndEngine加速器传感器方向

时间:2012-01-14 19:41:54

标签: java android andengine

我正在使用Andengine并使用SenorEvents使用加速度计进行精灵移动。

但由于某些原因,使用此代码,在平板电脑上,如果我处于制作游戏的横向模式,它就像是处于纵向模式一样。

我做错了吗?在普通的手机设备上,它可以正常工作

这就是我所拥有的。

 sensorManager = (SensorManager) this.getSystemService(Arcade_MainGame.SENSOR_SERVICE);
         sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);


  @Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub

}


@Override
public void onSensorChanged(SensorEvent event) {
synchronized (this) {
    switch (event.sensor.getType()) {
        case Sensor.TYPE_ACCELEROMETER:
            accellerometerSpeedX = (int)event.values[1];
            accellerometerSpeedY = (int)event.values[0];
            break;
    }
}

}

2 个答案:

答案 0 :(得分:1)

在平板电脑和某些智能手机上,默认模式是风景,因此当您声明游戏使用横向然后在平板电脑上时,这是纵向模式。您需要做的就是检查默认方向,如果有风景,请将Y切换为Y.这是主题如何检查

Check orientation on Android phone

答案 1 :(得分:1)

在你的代码中,event.values [1]应该是“Y”而event.values [0]的值是“X”(你把它们放错了地方)。

float x = event.values[0];
float y = event.values[1];