我用一个简单的场景进行了测试。
无法didBeginContact
调用函数。
我尝试使用collisionBitMask
and s1.physicsBody = SKPhysicsBody(circleOfRadius: 100)
。问题一直存在。
我能做些什么来修复它?
import SpriteKit
class Test2Scene: SKScene, SKPhysicsContactDelegate {
override func didMoveToView(view: SKView) {
physicsWorld.contactDelegate = self
physicsWorld.speed = 0
let s1 = SKSpriteNode(imageNamed: kImagePlayer)
s1.position = CGPointMake(100, 100)
s1.physicsBody = SKPhysicsBody(rectangleOfSize: s1.size)
s1.physicsBody?.categoryBitMask = 1
s1.physicsBody?.contactTestBitMask = 2
//s1.physicsBody?.collisionBitMask = 2
self.addChild(s1)
let s2 = SKSpriteNode(imageNamed: kImagePlayer)
s2.position = CGPointMake(100, 500);
s2.runAction(SKAction.moveToY(0, duration: 1))
s2.physicsBody = SKPhysicsBody(rectangleOfSize: s2.size)
s2.physicsBody?.categoryBitMask = 2
//s2.physicsBody?.collisionBitMask = 1
self.addChild(s2);
print("view did load")
}
func didBeginContact(contact: SKPhysicsContact) {
print("aaa")
}
func didEndContact(contact: SKPhysicsContact) {
print("bbb")
}
}