我正在使用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;
}
}
}
答案 0 :(得分:1)
在平板电脑和某些智能手机上,默认模式是风景,因此当您声明游戏使用横向然后在平板电脑上时,这是纵向模式。您需要做的就是检查默认方向,如果有风景,请将Y切换为Y.这是主题如何检查
答案 1 :(得分:1)
在你的代码中,event.values [1]应该是“Y”而event.values [0]的值是“X”(你把它们放错了地方)。
float x = event.values[0];
float y = event.values[1];