使用运动传感器的跷跷板游戏

时间:2014-02-18 23:19:07

标签: ios sprite-kit gyroscope core-motion

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

2 个答案:

答案 0 :(得分:3)

当然可以使用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代替。

答案 1 :(得分:1)

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

不确定您还想知道更多内容,只需确保将陀螺仪信息的更新设置为更快,如果您的应用程序的默认报告速度似乎有些滞后。如果您有任何问题,请随时询问。