【问题标题】:Adding custom game logic to Scene Kit (Swift)向 Scene Kit (Swift) 添加自定义游戏逻辑
【发布时间】:2015-01-09 04:59:45
【问题描述】:

我需要在我的 GameViewController 中添加一个游戏循环(来自用于 iOS 开发的 Swift“游戏”模板)以创建应用程序,并找到了解释如何执行此操作的参考页面:

https://developer.apple.com/library/prerelease/ios/documentation/SceneKit/Reference/SCNSceneRendererDelegate_Protocol/

但是,当我尝试将 SCNView 的委托设置为 ViewController 时,它会引发警告和错误(在 viewDidLoad() 内部):

gameView.delegate = self

gameView 在我的故事板中连接到 SCNView:

@IBOutlet weak var gameView: SCNView!

如果有人可以链接一个使用 Swift 和 Scene Kit 设置游戏逻辑的代码示例,或者从头开始向我解释它,那将是非常棒的。谢谢!

【问题讨论】:

  • 如果您不说出您看到的哪些警告和错误,就很难诊断您的问题。 (可能你的ViewController 没有声明符合SCNSceneRendererDelegate 协议?)
  • 如何声明符合 SCNSceneRendererDelegate 协议?
  • 参见 Swift 书中的 Protocol Syntaxclass ViewController: UIViewController, SCNSceneRendererDelegate, OtherProtocolsEtc
  • 我认为这是问题所在,所以让我们将解决方案移至答案...

标签: ios loops swift scenekit


【解决方案1】:

当你分配时:

gameView.delegate = self

这要求self 是一个声明符合SCNSceneRendererDelegate 协议的类。要使您的视图控制器类声明协议一致性,请使用in the Swift book 中描述的语法:

class ViewController: UIViewController, SCNSceneRendererDelegate  {
    //                ~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~ ^
    //                ^- superclass     ^- protocol              |
    //                   more protocols if you conform to them --/ 

    // ... rest of class definition ...
}

【讨论】:

  • 这是一些性感的 ASCII。您是如何做到这一点而又不被制表符和空格弄得发疯的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 2011-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多