スマートフォンをさまざまな方向に回転または回転させたときにオブジェクトを動かすゲームを作成するにはどうすればよいですか(たとえば、車の加速)。彼らは加速度計とジャイロスコープからの読み取り値を使用しますか、それともAndroidでOpenGLを使用しますか?
1852 次
2 に答える
4
加速度計はさまざまなデバイスで広く利用できるため、彼らは加速度計を使用している可能性があります。
このチュートリアルをご覧になることをお勧めします:http://blog.androgames.net/85/android-accelerometer-tutorial/
そして、これがGoogleの加速度計機能のデモです:http://developer.android.com/resources/samples/AccelerometerPlay/src/com/example/android/accelerometerplay/AccelerometerPlayActivity.html
于 2011-11-06T18:41:41.167 に答える
2
この例は、3方向の値の
ピッチ、方向、および方位角の簡単な計算を示しています。
if(SensorManager.getRotationMatrix(R, null, AccelerometerValues_last, MagneticFieldValues_last))
{
SensorManager.remapCoordinateSystem(R, SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, remapR);
SensorManager.getOrientation(remapR, orientationValues);
Matrix.multiplyMV(orientationVector, 0, remapR, 0, sZVector, 0);
pitch = (float) (-Math.atan2(orientationVector[1], orientationVector[2]) * RADIANS_TO_DEGREES);
Matrix.multiplyMV(orientationVector, 0, remapR, 0, sZVector, 0);
orientation = (float) (-Math.atan2(orientationVector[0], orientationVector[1]) * RADIANS_TO_DEGREES);
Matrix.invertM(remapR_inv, 0, remapR, 0);
Matrix.multiplyMV(azimuthVector, 0, remapR_inv, 0, sZVector, 0);
azimuth = (float) (180 + Math.atan2(azimuthVector[0], azimuthVector[1]) * RADIANS_TO_DEGREES);
}
記事「Androidセンサーの使用方法」の完全なコード 。ご参考までに。
于 2012-08-08T03:30:20.023 に答える