【发布时间】:2015-01-30 01:54:01
【问题描述】:
我正在使用 SpriteKit 和 Swift 制作一个运行 Xcode 6 的游戏。我有一个 SKLabelNode,在这个例子中我们称之为 myLabelNode。当我调用myLabelNode.removeFromParent() 时,它会从场景中删除节点,这是应该的。节点数减少 1,并且在屏幕上的任何位置都不可见。但是,当我单击之前myLabelNode 所在的位置时,我的程序仍然会调用只有在触摸myLabelNode 时才会发生的功能。我还尝试将myLabelNode.removeFromParent() 与myLabelNode.hidden = true 结合使用,但它仍然是可触摸的,并且即使它不应该调用该函数。我应该如何解决这个问题?我应该使用其他方法吗?这应该发生吗?
编辑:
let lemonadeLabel = SKLabelNode(fontNamed: "Optima-ExtraBlack")
override func didMoveToView(view: SKView) {
lemonadeLabel.text = "Lemonade Stand"
lemonadeLabel.fontSize = 24
lemonadeLabel.fontColor = SKColor.yellowColor()
lemonadeLabel.position = CGPoint(x: size.width/2, y: size.height*0.66)
lemonadeLabel.zPosition = 2.0
addChild(lemonadeLabel)
}
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
let touch = touches.anyObject() as UITouch
let location = touch.locationInNode(self)
if lemonadeLabel.containsPoint(location) {
println("lemonadeLabel pressed")
lemonadeLabel.removeFromParent()
/*lemonadeLabel is now be removed,
however if I click the area where it
used to be, "lemonadeLabel pressed"
will print to the console*/
}
}
【问题讨论】:
-
我们能否看到代码更好地提供帮助?
-
@Tokuriku 这里是:)
标签: ios swift ios8 sprite-kit sklabelnode