类型为"[SKNode ]"的值没有成员'name'



我在代码中有问题。请在第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"{

最新更新