【问题标题】:subclassed SKLabelNode to present scene, how?将 SKLabelNode 子类化以呈现场景,如何?
【发布时间】:2017-03-23 17:43:40
【问题描述】:

我有一个 SKLabelNode 的子类,它被实例化了三到四次,每次都有一个名称和一个目的地:

//

import SpriteKit

class MenuButton: SKLabelNode {

    var goesTo = SKScene()

    override init() {
        super.init()
        print("test... did this get called? WTF? HOW/WHY/WHERE?")
    }

    convenience init(text: String, color: SKColor, destination: SKScene){
        self.init()
        self.text = text
        self.color = color

        goesTo = destination
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        let nextScene = goesTo
       // .....?????????????????
       // HOW DO I GET THIS TO FIND ITS SCENE...
       // THEN ITS VIEW, THEN PRESENT this nextScene????

    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

}

我不知道如何获得需要调用场景更改的视图。

【问题讨论】:

    标签: swift sprite-kit skscene touchesbegan skview


    【解决方案1】:

    每个SKNode 都有一个scene 属性,该属性返回节点所在的场景。

    每个SKScene 都作为view 属性,所以

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        let nextScene = goesTo
    
        self.scene?.view?.presentScene(nextScene)
    
    }
    

    【讨论】:

    • 谢谢!!!比我解决这个问题的方法好得多;)let myPointlessView = SKView() myPointlessView.presentScene(nextScene)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多