didBegin 未检测到两个 SKSpriteNode 之间的接触
Posted
技术标签:
【中文标题】didBegin 未检测到两个 SKSpriteNode 之间的接触【英文标题】:didBegin not detecting contact between two SKSpriteNodes 【发布时间】: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")
当这两个元素接触时,什么都不会打印出来。关于我需要查看什么来尝试修复它的任何想法?
【问题讨论】:
【参考方案1】:我还没有代表发布 cmets,所以我必须将我的想法放在答案中。您是否尝试过在实际设备上运行代码?模拟器无法从某些图像正确创建物理体存在问题。一种解决方法是针对 ios 版本 12.x 进行编译并在具有该版本 iOS 的模拟器集中运行。但是您将无法利用 13 及更高版本的 iOS 功能。
【讨论】:
以上是关于didBegin 未检测到两个 SKSpriteNode 之间的接触的主要内容,如果未能解决你的问题,请参考以下文章