【问题标题】:didBegin not detecting contact between two SKSpriteNodesdidBegin 未检测到两个 SKSpriteNode 之间的接触
【发布时间】:2020-09-10 19:08:09
【问题描述】:

在我的 didMove 函数中,我说 physicsWorld.contactDelegate = self,在类的顶部,我从 SKPhysicsContactDelegate 继承。我添加了一个 SKSpriteNode,其物理体初始化如下:

        alien.physicsBody = SKPhysicsBody(rectangleOf: alienSize)
        alien.physicsBody!.affectedByGravity = false

然后我定义了另一个节点的物理体,它以同样的方式与外星人接触。当他们接触时,这两个元素确实会相互碰撞,但由于某种原因,didBegin(_ contact: SKPhysicsContact) 没有被调用,这意味着即使我说:

    func didBegin(_ contact: SKPhysicsContact) {
        print("\n\nContact!\n\n")
    }

当这两个元素接触时,什么都不会打印出来。关于我需要查看什么来尝试修复它的任何想法?

【问题讨论】:

    标签: ios swift sprite-kit skphysicsbody


    【解决方案1】:

    我还没有代表发布 cmets,所以我必须将我的想法放在答案中。您是否尝试过在实际设备上运行代码?模拟器无法从某些图像正确创建物理体存在问题。一种解决方法是针对 iOS 版本 12.x 进行编译并在具有该版本 iOS 的模拟器集中运行。但是您将无法利用 13 及更高版本的 iOS 功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      相关资源
      最近更新 更多