触摸时更改SKShapeNode的颜色?

时间:2015-09-26 07:31:54

标签: xcode swift sprite-kit

我有一个游戏,我触摸一个节点,它运行一些代码。触摸时如何更改SKShapeNode的颜色?我尝试使用node.fillColor = SKColor.blackcolor(),但它说我不能这样做,即使这就是我最初创建SKShapeNode的颜色的方式。

这是所有写作触摸开始的方法。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    for touch: AnyObject in touches { 
        let positionOfTouch = touch.locationInNode(self) 
        let node = nodeAtPoint(positionOfTouch)         
        node.userInteractionEnabled = true 
        node.fillColor = UIColor.whiteColor() 

这是我正在使用的代码。但它一直在说&#34; SKNode类型的价值没有成员&#34; fillColor&#34; ...但是&#34; fillColor&#34;适用于我的DidMoveToView。 感谢

1 个答案:

答案 0 :(得分:0)

您可能触摸的节点可能是父节点或子节点 - SKNode,而不是SKShapeNode。这是nodeAtPoint返回的内容,而通用SKNode没有fillColor。您需要通过测试来检查它是您期望的类。有点像...

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    for touch: AnyObject in touches { 
        let positionOfTouch = touch.locationInNode(self) 
        if let node = nodeAtPoint(positionOfTouch) as? SKShapeNode {
            node.userInteractionEnabled = true 
            node.fillColor = UIColor.whiteColor()