当我们向不同方向转动或旋转手机(例如加速汽车)时,人们如何创建使物体移动的游戏?他们是使用加速度计和陀螺仪的读数还是在 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 回答