上会出现错误
我在代码中有问题。请在第5行帮助我!错误说:
类型的值'[sknode]'没有成员'名称'
这是我获得错误的功能:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch: AnyObject in touches{
let pointOfTouch = touch.location(in: self)
let nodeITapped = self.nodes(at: pointOfTouch)
if nodeITapped.name == "startButton"{
let sceneToMoveTo = GameScene(size: self.size)
sceneToMoveTo.scaleMode = self.scaleMode
let myTransition = SKTransition.fade(withDuration: 0.5)
self.view!.presentScene(sceneToMoveTo, transition: myTransition)
}
我在使用if nodeITapped.name == "startButton"
self.nodes(at: pointOfTouch)
返回一个节点数组,因此您应该循环循环该数组检查每个节点。另外,在找到该节点后,您应该从功能中 return
:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let pointOfTouch = touch.location(in: self)
for nodeITapped in self.nodes(at: pointOfTouch) {
if nodeITapped.name == "startButton" {
let sceneToMoveTo = GameScene(size: self.size)
sceneToMoveTo.scaleMode = self.scaleMode
let myTransition = SKTransition.fade(withDuration: 0.5)
self.view!.presentScene(sceneToMoveTo, transition: myTransition)
// found the one I was looking for, so don't continue
return
}
当您遇到此错误时:类型'[sknode]'的值没有成员'名称'
我认为节点是一系列节点,所以使用
nodeITapped.name.name == "startButton"
或
可以尝试这样的循环:
for nodeITapped in self.nodes(at: pointOfTouch) {
if nodeITapped.name == "startButton"{