我有两个 Sprite 节点,我已确保 self.size 和它们各自物理体的大小相同,但我仍然得到一个非常奇怪的行为,如下所示:
这张照片是在检测到碰撞后拍摄的,我暂停了场景。为什么会出现这种情况?
以下是设置不同尺寸的代码:
在我的 Player 类的 init()
内部(圆形节点):
super.init(texture: texture, color: color, size: CGSize(width: 100, height: 100))
然后:
self.physicsBody = SKPhysicsBody(circleOfRadius: self.size.width/2, center: self.position)
最佳答案
在 GameViewController.swift
中打开物理视觉表示,如下所示:
skView.showsPhysics = true
self.size
在你的情况下可能指的是场景。您需要的是设置物理体的大小,如下所示:
yourNode.physicsBody = SKPhysicsBody(rectangleOfSize: yourNode.size)
另请记住,如果您更改节点的 anchor ,您可能会得到意想不到的结果。 anchor 定义如何相对于节点绘制纹理。对节点的物理体没有影响。
关于ios - didBeginContact() 在接触发生之前调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34224121/