aufgerufen werden Ich habe mit einer einfachen Szene getestet.SpriteKits didBeginContact kann nicht
Func didBeginContact
kann nicht aufgerufen werden.
Ich habe versucht, collisionBitMask
und s1.physicsBody = SKPhysicsBody(circleOfRadius: 100)
zu verwenden. Das Problem war hartnäckig.
Was kann ich tun, um es zu beheben?
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")
}
}
Und einige Sachen über die Implementierung von Kontakterkennung innerhalb von 'didBeginContact' Methode verwenden müssen: http://stackoverflow.com/a/36246855/3402095, http://stackoverflow.com/a/27389834/3402095, http://StackOverflow.com/a/20604762/3402095 – Whirlwind