Sprite 套件中未检测到接触
Contact not being detected in Sprite kit
class GameScene: SKScene, SKPhysicsContactDelegate {
func didBegin(_ contact: SKPhysicsContact) {
let contactA:SKPhysicsBody = contact.bodyA
let contactB:SKPhysicsBody = contact.bodyB
if contactA.contactTestBitMask == 1 && contactB.contactTestBitMask == 2 {
jumpButtonIsReady = true
print("player landed on ground1")
}
if contactA.contactTestBitMask == 2 && contactB.contactTestBitMask == 1 {
jumpButtonIsReady = true
print("player landed on ground1")
} }
}
我用场景编辑器把player的contactTestBitMask设置为1,ground设置为2,都设置为dynamic是true。但是联系人没有注册。感谢您的帮助。
您可能在场景初始化中遗漏了 physicsWorld.contactDelegate = self
。仅仅符合 SKPhysicsContactDelegate
是不够的。
如果您确认没问题,则通过将视图的 showsPhysics
设置为 true
来检查物理体是否正确。
class GameScene: SKScene, SKPhysicsContactDelegate {
func didBegin(_ contact: SKPhysicsContact) {
let contactA:SKPhysicsBody = contact.bodyA
let contactB:SKPhysicsBody = contact.bodyB
if contactA.contactTestBitMask == 1 && contactB.contactTestBitMask == 2 {
jumpButtonIsReady = true
print("player landed on ground1")
}
if contactA.contactTestBitMask == 2 && contactB.contactTestBitMask == 1 {
jumpButtonIsReady = true
print("player landed on ground1")
} }
}
我用场景编辑器把player的contactTestBitMask设置为1,ground设置为2,都设置为dynamic是true。但是联系人没有注册。感谢您的帮助。
您可能在场景初始化中遗漏了 physicsWorld.contactDelegate = self
。仅仅符合 SKPhysicsContactDelegate
是不够的。
如果您确认没问题,则通过将视图的 showsPhysics
设置为 true
来检查物理体是否正确。