【发布时间】:2018-03-22 22:42:44
【问题描述】:
我只是想让 spritenode 在被点击时移动。但似乎场景不会更新,直到第二次点击另一个 spritenode 点击发生。
我的错误在哪里?
override init(size: CGSize) {
super.init(size: size)
cardLayer = SKNode()
addChild(cardLayer)
sprite = SKSpriteNode()
let cardSize = CGSize(width: 80,height: 100)
sprite.size = cardSize
sprite.texture = SKTexture(imageNamed: "1.png")
sprite.position = CGPoint(x: 200, y: 200)
sprite.name = "123"
cardLayer.addChild(sprite)
sprite1 = SKSpriteNode()
sprite1.size = cardSize
sprite1.texture = SKTexture(imageNamed: "1.png")
sprite1.position = CGPoint(x: 200, y: 300)
sprite1.name = "123"
cardLayer.addChild(sprite1)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let array = Array(touches)
let touch = array[0]
let location = touch.location(in: self)
let touchedNode = atPoint(location)
if let _ = touchedNode.name {
print("moved")
touchedNode.position = CGPoint(x: 10, y: 10)
}
}
【问题讨论】:
-
按照 if let _ = touchNode.name {
-
能否请您说明您所说的“继续工作”是什么意思。该节点有一个名称,所以在我看来这条线是正确的。我的问题是仅更改位置不会更新节点。为什么呢? (如果我在这里添加一个动作就可以了,但这只是一个例子——最后我有一个函数可以更新超过 50 个节点的位置和图像)
-
向谷歌或擅长搜索引擎搜索的人询问节点名称。
-
对不起,“问谷歌”真的没有帮助。
标签: swift skspritenode