我的屏幕右侧有不同颜色的条形图,其他颜色相同的条形图从左侧随机生成,与右边的静态条形图相匹配。当匹配的颜色碰撞时,它们会增加我的分数标签并从场景中完全删除,但是当错误的匹配时,没有任何反应。我甚至设置了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")
}
}
}
答案 0 :(得分:0)
你的代码似乎是一个无组织的混乱,试一试:
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()
}
}
}