значение типа '[SKNode]' не имеет члена 'name' - PullRequest
0 голосов
/ 28 апреля 2018

У меня проблема с моим кодом. Пожалуйста, помогите мне в строке № 5! Ошибка говорит:

значение типа '[SKNode]' не имеет члена 'name'

Вот функция, где я получаю ошибку:

 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"

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

при получении этой ошибки: значение типа '[SKNode]' не имеет члена 'name'

Я думаю, что nodeITapped - это массив узлов, поэтому используйте как

nodeITapped.name.name == "startButton"

Или

можете попробовать цикл следующим образом:

for nodeITapped in self.nodes(at: pointOfTouch) {

    if nodeITapped.name == "startButton"{
0 голосов
/ 28 апреля 2018

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
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...