我有一个游戏,我触摸一个节点,它运行一些代码。触摸时如何更改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。 感谢
答案 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()