如何检测一个精灵节点是否与另一个精灵节点颜色相同,然后如果不是“重新开始游戏”,则添加到得分是否相同

时间:2016-09-27 16:52:53

标签: sprite-kit skspritenode

所以我有一个你控制的“球”(玩家),当玩家点击“colorOrb”时,Ball会随机变换为该颜色,这样该部分可以正常工作,但我仍然坚持如何检测玩家会变成一个随机颜色,如果一旦它穿过也是随机颜色的墙,如果它们都是相同的颜色并添加+1或任何得分,则会变为随机颜色。 我尝试了多种方法,但似乎无法弄明白。提前谢谢:)

1 个答案:

答案 0 :(得分:1)

给定BallWall

class Ball: SKSpriteNode { }
class Wall: SKSpriteNode { }

didBegin(contact:)中,只需比较color属性。

class GameScene: SKScene, SKPhysicsContactDelegate {

    func didBegin(_ contact: SKPhysicsContact) {

        let nodeA = contact.bodyA.node
        let nodeB = contact.bodyB.node

        guard let nodes: (ball:Ball, wall:Wall) = (nodeA, nodeB) as? (Ball, Wall) ?? (nodeB, nodeA) as? (Ball, Wall) else { return }

        if nodes.ball.color == nodes.wall.color {
            // same color
            // TODO...
        }

    }
}