【问题标题】:Teeter game using motion sensor [closed]使用运动传感器的跷跷板游戏[关闭]
【发布时间】:2014-02-18 23:19:07
【问题描述】:

我对 SpriteKit 还比较陌生,我希望制作一款类似于 Teeter 的游戏,这样我可以发展我的个人知识。在网上搜索了几天后,我找不到任何教你如何使用 iPhone 运动传感器的教程(当设备倾斜时)所以我放弃并转向 Stack。更具体地说,我真的想知道是否有可能将 CoreMotion 框架与 SpriteKit 一起使用。如果不是,那么在不使用第三方游戏引擎的情况下开发在 iOS 设备上运行的 Teeter 等游戏的“最佳解决方案或方法”是什么?

【问题讨论】:

  • 你的意思是当设备倾斜的时候?
  • 嗨@Lucas 是的,这就是我的意思

标签: ios sprite-kit gyroscope core-motion


【解决方案1】:

当然可以使用 Core Motion:

@import CoreMotion;

这是加速度计读数的示例实现 - 声明一个实例变量:

CMMotionManager *_myMotionManager;

初始化场景时的初始设置:

_myMotionManager = [[CMMotionManager alloc] init];
_myMotionManager.accelerometerUpdateInterval = 0.2; // tweak the sensitivity of intervals
[_myMotionManager startAccelerometerUpdates];

这是在 Y 轴上收集加速度计数据的方法(共有三个:X、Y、Z) - 将其放入 Sprite Kit 游戏的更新方法中:

float yAcceleration = _myMotionManager.accelerometerData.acceleration.y;
NSLog(@"y axis acceleration data: %f", yAcceleration);


当不再需要它们时,请确保您 [_myMotionManager stopAccelerometerUpdates];

如果您需要陀螺仪数据,方法非常相似 - 在这里,您将启动陀螺仪更新并改用 _myMotionManager.gyroData.rotationRate.y

【讨论】:

  • 感谢 Batalia 非常有帮助
【解决方案2】:

是的,你的思路是正确的。不是游戏对象响应触摸的变化,而是陀螺仪的变化,可以通过 CoreMotion 访问。

不确定您还想了解什么,只要确保将陀螺仪信息的更新设置为更快,如果您的应用程序的默认报告速度似乎滞后。如果您有任何问题,请随时提出。

【讨论】:

  • 感谢您的回答。在我看来,我需要弄清楚如何实现陀螺仪方法。我将四处寻找是否可以找到一些关于陀螺仪的好的文档或教程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多