私はAndroidスタジオを使ってLibGDXゲームを作っています。エイリアンUFOが入ってくる小惑星を避けなければならず、UFOは加速度計データを使って移動します。携帯電話の背面が床と平行になるように電話が開催されているが、そのような位置はしばらく後でプレーする不快得ることができたときに異なる位置にある携帯電話の加速度計データを調整する方法。
//Gets and smoothens accelerometer data. Values for x and y are switched because the game is played in landscape mode.
currentAccelerometerX = Gdx.input.getAccelerometerY();
currentAccelerometerX = currentAccelerometerX * alpha + lastAccelerometerX * (1 - alpha);
currentAccelerometerY = Gdx.input.getAccelerometerX();
currentAccelerometerY = currentAccelerometerY * alpha + lastAccelerometerY * (1 - alpha);
//Moves the alien
alien.alienX += (currentAccelerometerX * 5);
alien.alienY -= (currentAccelerometerY * 5);
lastAccelerometerY = currentAccelerometerY;
lastAccelerometerX = currentAccelerometerX;
このコードは動作します。私はデバイスの現在の回転を考慮に入れて、それに応じてUFOの動きをどのように調整できるのだろうと思っていました。
この問題は外出先のY位置(携帯電話のx加速度計データを意味する)のみたいです(この値は、横長モードで再生されているので値が切り替わります)。電話機を床に角度を持って置くと、UFOは画面の下端付近にとどまります。
幸せな日!私がしなければならなかったのは、AccelerometerXとAccelerometerYの開始値を作成し、それらから現在のAccelerometer値を減算することでした。 –