【问题标题】:SpriteBuilder | Cocos2d - Swift | XCode | ccPhysicsCollisionBegin精灵生成器 | Cocos2d - 斯威夫特 |代码 | ccPhysicsCollisionBegin
【发布时间】:2015-08-19 23:14:16
【问题描述】:

我正在开发的一个特定 SpriteBuilder 应用程序使用 SpriteBuilder SB 版本 1.4.7、X Code 6.2 和 iOS 8.2 iPhone 部署和功能

ccPhysicsCollisionBegin(pair: ...) -> Bool { return true }.

该应用程序在 iPhone 5S 和 iPhone 6 模拟器上完美运行,但在我使用 iPhone 5、iPhone 4S 或 iPad 2 模拟器时以及当我尝试在我的第 5 代 iTouch 上加载它时终止于上述功能。

我得到的错误信息是

'NSInternalInconsistencyException' 原因:'CCPhysicsCollisionBegin 委托方法必须返回一个 BOOL。'

谁能告诉我为什么会这样?

【问题讨论】:

  • 我对 ccCC 在该方法中的情况感到困惑。另外,由于这是一个快速的问题,请使用swift 标签标记它。

标签: swift game-physics spritebuilder


【解决方案1】:

您也可以调用该函数并返回一个 ObjCBool​​。 例如: ccPhysicsCollisionBegin(pair: ...) -> ObjCBool{ return true }

【讨论】:

    【解决方案2】:

    我刚刚遇到了同样的问题,我在 Cocos 代码中找到了一些修补程序来更改此问题。由于 Objective-C (BOOL) 和 Swift (Bool) 之间的差异,这似乎是 CCPhysicsNode.m 中的一个错误。在他们修复错误之前,将条件替换为:

    NSAssert((strcmp(returnType, @encode(BOOL)) == 0 || strcmp(returnType, "B") == 0), @"CCPhysicsCollisionBegin delegate methods must return a BOOL.");
    

    希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多