【问题标题】:Detect Contact After Changing contactTestBitMask in SpriteKit在 SpriteKit 中更改 contactTestBitMask 后检测联系人
【发布时间】:2015-05-30 15:14:50
【问题描述】:

我目前正在使用 SpriteKit 在 Swift 中创建 2D 游戏,但我遇到了碰撞检测问题。

假设我在游戏中有 SKSpriteNode Foo。然后假设 SKSpriteNode Bar 在 Foo 上生成,但没有用于触发联系的 contactTestBitMask。然后在片刻之后(比如说 1 秒)Bar 更改其 contactTestBitMask 以检测与 Foo 的接触。

目前,Foo 将不得不实际移动一点或从 Bar 下方移出并返回到它以检测与它的接触。我需要 Bar 在更改其 contactTestBitMask 时立即触发与 Foo 的联系。

也许有其他方法可以在不更改contactTestBitMask 的情况下做到这一点?

谢谢!

【问题讨论】:

    标签: ios swift sprite-kit collision-detection collision


    【解决方案1】:

    如果您创建一个物理体对象与另一个物理体对象相交,则不会记录任何碰撞。它与 SK 仅通过运动记录碰撞的方式有关。

    您可以选择在创建对象时使用intersectsNode:,以查看它是否与另一个对象相交并相应地处理任何后续代码。

    【讨论】:

    • @lespommes - 经常发生。
    • 嘿 sangony,除非我创建了一个 SKPhysicsBody 来勾勒纹理并且在图像中不包含 alpha,否则它会起作用。如果是这种情况,节点的实际框架比它的物理体大得多,所以它正在检测相交,即使它不应该(因为它使用框架而不是物理体)。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多