我的屏幕右侧有不同颜色的条,左侧随机生成的其他颜色相同的条与右侧的静态条相匹配。当匹配的颜色发生冲突时,它们会增加我的分数标签并完美地从场景中移除,但是当错误的颜色匹配时,什么也不会发生。我什至设置了一个 print("")
语句,但它没有被调用。这是我的 didBeginContact
代码:
func didBeginContact(contact: SKPhysicsContact) {
if let firstBody = ((contact.bodyA.categoryBitMask <= contact.bodyB.categoryBitMask) ? contact.bodyA.node : contact.bodyB.node) as! SKSpriteNode? {
if let secondBody = ((contact.bodyA.categoryBitMask <= contact.bodyB.categoryBitMask) ? contact.bodyB.node : contact.bodyA.node) as! SKSpriteNode? {
if firstBody.color == secondBody.color {
label.text = "\(points)"
points++
firstBody.removeFromParent()
}
if firstBody.color != secondBody.color {
gameEnd()
print("didn't match")
}
}
}
最佳答案
你的代码似乎是一团乱七八糟的东西,试一试:
func didBeginContact(contact: SKPhysicsContact) {
if let firstBody = ((contact.bodyA.categoryBitMask <= contact.bodyB.categoryBitMask) ? contact.bodyA.node : contact.bodyB.node) as! SKSpriteNode?, secondBody = ((contact.bodyA.categoryBitMask <= contact.bodyB.categoryBitMask) ? contact.bodyB.node : contact.bodyA.node) as! SKSpriteNode? {
if firstBody.color == secondBody.color {
label.text = "\(points)"
points++
firstBody.removeFromParent()
}
else{
print("didn't match")
gameEnd()
}
}
}
关于swift - didBeginContact 未调用 GameOver 场景。有什么需要补充的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34908540/