教程:使用移动/远程加速计

教程:使用移动/远程加速计

关于新的 Apple TV Remote 的一个很酷的事情是它内置了加速计,类似于移动设备,这使您可以测量设备在空间中的位置/方向。本质上,在移动设备或遥控器上,加速计基于设备的朝向和中心点进行三个离散测量。

加速计事件

加速计事件 返回几个有用的值,包括:

所有“重力”、“瞬时”和“原始”值都假设设备以“纵向”方向握持。这对于握持 Apple TV Remote 的人来说非常常见(遥控器像传统的电视/音频遥控器一样握持)。但是,如果您正在设计一个横向应用,例如赛车游戏,您可能希望遥控器以“横向”方向握持(如传统的游戏机控制器),以便模拟方向盘。 在这种情况下,您应该将值调整 90 度。

实施

让我们看一下加速计的简单实现。此应用程序将创建一个蓝色圆圈,并允许您通过移动/定向设备在屏幕上移动它。

对于这个简单的例子,我们创建一个点(圆形),将其颜色设置为蓝色,并设置一些文本显示对象来显示从加速度计事件接收到的值。

加速度计事件需要一个监听器函数,由我们的 onTilt() 函数提供。在该函数内部,我们根据当前的加速度计数据更新屏幕上的值。

接下来,我们将 event.xGravityevent.yGravity 的值添加到点的 xy 位置。这将使点在屏幕上移动。在此之后,我们编写四个条件语句,将点限制在屏幕边界内。

在该函数的最后一个代码块中,我们测试设备是否被摇晃,并且每次检测到摇晃时,都将颜色在红色和蓝色之间切换。

最后,在示例的最后一行,我们启用 "accelerometer" 事件处理程序。

结论

使用加速度计是使您的应用程序在 tvOS 上正常运行的重要组成部分 — 毕竟,并非所有控制方案都可以通过简单的上/下/左/右按键事件或轴输入来实现。例如,考虑像“水果忍者”这样的经典游戏。在移动设备上,您无法使用加速度计来切水果,但是现在有了支持加速度计的遥控器,您可以通过跟踪加速度计的值来检测切削动作。


Rob Miracle
[email protected]

Rob 是 Corona Labs 的开发者关系经理。除了热衷于帮助其他开发人员使用 Corona 开发出色的游戏外,他还喜欢在业余时间制作游戏。自 1979 年以来,Rob 就一直在从个人计算机到大型机上编写游戏代码。他在游戏行业拥有超过 16 年的专业经验。

3 条评论
  • Andreas
    发布于 23:25,11 月 24 日

    你好,Rob,

    谢谢,这太完美了!我几乎完成了将 “Freeze! 2 – Brothers” 从纵向移植到横向并添加按键控制的工作,加速度计的实现将是我接下来的任务。你的时机太棒了!

    最好,
    Andreas

  • Tobias
    发布于 05:09,11 月 26 日

    非常有用的信息 - 非常感谢!迫不及待地想将我们的第一个游戏移植到 Apple TV!

  • 使用 Corona SDK 的加速器 - LuizTools
    发布于 15:30,7 月 5 日

    […] * 基于原始教程创建:教程:使用移动/远程加速度计 […]