【问题标题】:How do I use Core Motion and gyroscope in Xcode 5如何在 Xcode 5 中使用 Core Motion 和陀螺仪
【发布时间】:2014-03-17 17:22:28
【问题描述】:

我一直在搜索一些关于Core Motion和陀螺仪的信息,但我还没有找到任何合适的答案。

我正在使用 Xcode 5

我的问题:

如何通过倾斜 iPhone 使图像(或在本例中为玩家)向左或向右移动,就像游戏中名为“Doodle Jump”的角色一样?

我已经让它跳起来了,但是我不能通过倾斜 iPhone 让它左右移动。 我也有一个开发者帐号,并且已经在实际设备上进行了尝试。

任何形式的帮助将不胜感激!

【问题讨论】:

  • 如果您发布您尝试过的代码,您将节省一些反对意见并获得一些好的答案。
  • xcode 既没有 Core Motion 也没有陀螺仪。它只是一个 IDE。
  • @vefthym 我不同意,我认为他的标题很清楚:“我如何使用 Core Motion 和陀螺仪”。不过他的问题有点具体。所以事实上,感谢上帝,他没有粘贴他已经拥有的东西。否则对未来的读者来说将非常无用
  • 我认为你的意思是 xcode 5 Kaspersson 的 SDK 7

标签: iphone gyroscope core-motion


【解决方案1】:

1.新建一个Spritekit项目:

2.添加核心运动框架

3.在 MyScene.m 文件的 'touchesBegan' 方法中添加此代码:

sprite.size=CGSizeMake(20, 20);

4.在你的 MyScene.m 文件的 'update' 方法中添加这段代码:

CMMotionManager* _motionManager;
 -(void)update:(CFTimeInterval)currentTime {
     if (_motionManager==nil) {
         _motionManager=[[CMMotionManager alloc]init];
         _motionManager.deviceMotionUpdateInterval=0.25;
         [_motionManager startDeviceMotionUpdates];
     }
     SKSpriteNode *sprite;
     for (int i=0; i<self.children.count;i++) {
        sprite=[self.children objectAtIndex:i];
        sprite.position = CGPointMake(sprite.position.x * _motionManager.deviceMotion.attitude.pitch*10, sprite.position.y);
     }
}

你可以找到更详细的版本here

这是一个小video,其中包含这段代码的结果

【讨论】:

  • 感谢您的回答,但有一个问题。我的游戏在单视图应用程序中。因此,我不能使用 spritekit 游戏的命令。有什么想法可以在单视图应用程序中实现吗?
  • CMMotionManager 不是 SpriteKit 的一部分。你也可以将它用于 UIViews。您必须调整 UIView 的位置,而不是重新定位 SKSpriteNode
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多