繁体   English   中英

didBegin 没有检测到两个 SKSpriteNodes 之间的接触

[英]didBegin not detecting contact between two SKSpriteNodes

在我的 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 版本 12.x 进行编译并在具有该版本 iOS 的模拟器中运行。 但是您将无法利用 13 及更高版本的 iOS 功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM