您的位置:首页 > 其它

第八章 Libgdx输入处理(6)加速度计

2013-05-26 01:51 246 查看
Android游戏开发群:290051794

Libgdx游戏开发框架交流群:261954621


在Android中,加速度计是通过三个坐标确定设备加速度。加速度的变化源于设备的倾斜和方向的改变。
加速度的单位是(m/s2),如果一个轴指向地球的中心,则加速度大约为10
m/s2。如果指向相反地方向,则加速度为-10 m/s2。
在Android,各轴表示如下:



对于手机来说,portrait mode是默认的方向模式。
检测可用性
不同的Android设备具有不同的硬件配置。下面代码检测设备是否支持加速度计:
boolean available = Gdx.input.isPeripheralAvailable(Peripheral.Accelerometer);


查询当前设备方向
如果你的游戏需要知道当前设备的方向,使用以下方法:
int orientation = Gdx.input.getOrientation();

这个将要返回0、90、180或270等值,查询设备屏幕方向:
Orientation nativeOrientation = Gdx.input.getNativeOrientation();

返回值为Orientation.Landscape
或者 Orientation.Portrait。
加速度读取
加速度只能在Libgdx中的polling中获取:
float accelX = Gdx.input.getAccelerometerX();

    float accelY = Gdx.input.getAccelerometerY();

float accelZ = Gdx.input.getAccelerometerZ();


设备不支持的话返回0。
旋转矩阵
如果你想使用设备方向进行渲染,使用旋转矩阵是明智的。你可以直接将你的矩阵在OpenGL中渲染:
Matrix4 matrix = new Matrix4();

Gdx.input.getRotationMatrix(matrix.val);


作者:宋志辉

出处:http://blog.csdn.net/song19891121

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

支持: 新浪微博 腾讯微博
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: