Как получить доступ к переменным в Swift, содержащимся в пользовательском классе на узле справочного редактора сцен SpriteKit? - PullRequest
0 голосов
/ 22 февраля 2019

Прежде всего, я хотел бы сказать, что я полностью самоучка, следуя как можно большему количеству учебных пособий в Интернете, поэтому заранее прошу прощения, если есть определенные концепции, с которыми я не слишком знаком.

Ладно, я бы хотел попросить помощи по чему-то, что меня озадачило несколько дней.

У меня есть ссылочный узел (referenceNode) в сцене SpriteKit (GameScene),
Этот ссылочный узел ссылается на другую сцену SpriteKit (referenceScene),
, и эта сцена имеет пользовательский класс (referenceClass.swift).

У меня есть логическая переменная в referenceClass.swift, которая называется trueOrFalse, иЯ хочу иметь возможность изменять вейл из моего кода в gameScene.swift.

Я пытался привести из SceneEditor к своему коду, создавая экземпляры, как вы делали бы SKSpriteNode и SKLableNodes, но, похоже, это не так.работает

class GameScene: SKScene
{

var referenceNode: SKReferenceNode!  //link to SceneEditor Reference Node

override func didMove(to view: SKView)
{
    referenceNode = self.childNode(withName: "referenceNode") as! SKReferenceNode

}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
{
    referenceNode.trueOrFalse = false
}
}

это мой пользовательский класс

import UIKit
import SpriteKit
class referenceClass: SKScene
{
    var trueorfalse:Bool = true
    func oneFunction()
    {

    }
}

Это всего лишь небольшой пример проекта, который я сделал, чтобы я мог разобраться в концепции, пробуя различные решения, которые я мог найтино безуспешноЯ понимаю, что могу создавать глобальные переменные, но я пытаюсь сохранить свой код в чистоте, так как все функциональные возможности, связанные с этим узлом, сохраняются в этом referenceClass.Также мне сказали, что это не очень хорошее программирование?

Любая помощь будет принята с благодарностью:)

Барни

1 Ответ

0 голосов
/ 23 февраля 2019

Прежде всего, я бы проверил, правильно ли выполнен поиск - https://developer.apple.com/documentation/spritekit/sknode/searching_the_node_tree

Например, в шаблоне проекта SpriteKit поиск узлов осуществляется с префиксом //, т.е. //referenceNode в вашем случае.

Во-вторых, не приводите его немедленно к SKReferenceNode, сначала проверьте, какой тип объекта возвращается (если есть).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...