我正在使用 Andengine 并使用 SenorEvents 通过加速度计使 Sprite 移动。
但是出于某种原因,对于此代码,如果我在平板电脑上处于制作游戏的横向模式,它的行为就好像它处于纵向模式一样。
我做错了什么吗?在普通手机设备上,它可以正常工作
这是我的。
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;
}
}
}
最佳答案
在平板电脑和一些智能手机上,默认模式是横向模式,因此当您声明您的游戏使用横向模式时,在平板电脑上这是纵向模式。您需要做的就是检查默认方向,如果有横向,则将 X 切换为 Y。这是主题如何检查它
关于java - 使用 AndEngine 的加速器传感器方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864842/