加速度计测量三轴上的设备加速度(至少在Android上)。 从该加速度可以得出装置的倾斜或取向。
加速度以(m/s2)为单位,如果轴指向地球中心,则其加速度将大致为-10m/s²。 如果指向相反方向,加速度将为10 m /s²。
Android设备中的轴设置如下:

LibGDX输入模块之加速度计_第1张图片 Android的轴设置

不幸的是,平板电脑的配置是不同的。 Android设备有一个叫做默认方向的概念。 对于手机,纵向模式(如上图所示)是默认方向。 对于平板电脑,横向模式是默认方向。 横向设备有自己的一套轴设置(如上图,x轴和y轴对调)

Libgdx显示加速度计读数,如上图所示,无论设备的默认方向如何(正z轴从屏幕出来,正x轴指向右侧,正y轴正向沿设备向上)。

检查可用性

不同的Android设备具有不同的硬件配置。 检查设备是否具有加速度计可以使用如下代码:
····java
boolean available = Gdx.input.isPeripheralAvailable(Peripheral.Accelerometer);
····

查询设备的方向

如果您的游戏需要知道设备的当前方向,可以使用以下方法:

int orientation = Gdx.input.getRotation();

这将返回值为0,90,180或270,给出当前方向和原始方向之间的角度差异。
原始方向是纵向模式(如上图所示)或横向模式(主要用于平板电脑)。 可以查询如下:

Orientation nativeOrientation = Gdx.input.getNativeOrientation();

这将返回Orientation.Landscape或Orientation.Portrait。

加速度计读数

加速度计读数只能通过libgdx中的轮询进行访问:

    float accelX = Gdx.input.getAccelerometerX();    float accelY = Gdx.input.getAccelerometerY();    float accelZ = Gdx.input.getAccelerometerZ();

没有加速度计支持的平台或设备将返回零。
有关使用加速度计的演示,请参阅Super Jumper演示游戏。

旋转矩阵

如果要使用设备的方向进行渲染,那么使用旋转矩阵是一个不错的方法。 有关说明,请参阅本链接。 您可以将生成的矩阵直接插入到OpenGL渲染.

Matrix4 matrix = new Matrix4();Gdx.input.getRotationMatrix(matrix.val);// use the matrix, Luke

更多相关文章

  1. Android设备获取扫码枪扫描内容
  2. Android usb学习笔记:Android AOA协议设备端 流程总结
  3. Android 蓝牙搜索不到设备(android M权限问题)
  4. 关于如何惟一地标识一台Android设备的综合性讨论
  5. 关于蓝牙设备之间共享网络的问题(android4.2)
  6. Android设备检测
  7. Android判断设备是手机还是平板
  8. Android设备的显示信息

随机推荐

  1. android coding style
  2. Android以最省内存的方式读取本地资源的
  3. 淘宝Android自动化测试框架-TMTS
  4. html5,移动端开发(1)
  5. Android(安卓)建立自己的手写笔画图案 Ge
  6. 最简单的基于FFmpeg的移动端例子:Android
  7. Android Studio2.3+AndroidSDK安装【图文
  8. Android v4包下的PagerTitleStrip,ViewPag
  9. Android 炫酷的多重水波纹 MultiWaveHead
  10. boot.img的解包与打包