Dies ist mein erster Versuch mit SpriteKit und ich habe Probleme, meine Kollision mit Bitmasken richtig zu machen. Ich habe drei Kategorien, Wenn Spieler Treffer leuchtet, möchte ich die Punktzahl erhöhen und den beleuchteten Knoten vom Bildschirm verschieben, sonst möchte ich meine gameover() -Funktion aufrufen. Ich habe viele Variationen ausprobiert und kann nichts sehen, außer dass eine allgemeine Kollision erkannt wird. Ich habe auch die Kategorie- und Kontakt-Bitmasken für jeden Knoten definiert.Swift Spritekit Collision Handling
let playerCategory: UInt32 = 1
let razzCategory: UInt32 = 2
let litCategory: UInt32 = 4
func didBeginContact(contact: SKPhysicsContact) {
var firstBody: SKPhysicsBody
var secondBody: SKPhysicsBody
if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask)
{
firstBody = contact.bodyA
secondBody = contact.bodyB
}
else
{
firstBody = contact.bodyB
secondBody = contact.bodyA
}
if ((firstBody.categoryBitMask & playerCategory) == 0 && (secondBody.categoryBitMask & litCategory) == 1)
{
lit.position.x = 400
score += 1
}
else {
gameOver()
}
}
Sie nicht wollen, die, wenn die Bedingung 0 und 1 gleich, Sie wollen, dass sie die Kategorie gleich Sie – Knight0fDragon
id didBeginContact überhaupt genannt werden überprüft? – hamobi