【发布时间】:2016-06-18 03:42:38
【问题描述】:
如何从场景本身外部更新 SpriteKit 场景。例如。如何通过按下 UIButton 来更新 SKLabelNode。
场景
class GameScene: SKScene {
var myLabel:SKLabelNode = SKLabelNode()
override func didMoveToView(view: SKView) {
myLabel.text = "Initial State"
myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
self.addChild(myLabel)
}
func didPressButton() {
myLabel.text = "Pressed! ????"
}
视图控制器
import UIKit
import SpriteKit
class GameViewController: UIViewController {
@IBAction func didPressButton(sender: AnyObject) {
if let scene = GameScene(fileNamed:"GameScene") {
scene.didPressButton()
}
}
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene(fileNamed:"GameScene") {
let skView = self.view as! SKView
skView.presentScene(scene)
}
}
…
}
我知道场景中常用的touchesBegan 可以很好地更新场景中的 SKLabelNode。但我对从外部事件更新场景特别感兴趣。有什么想法吗?
【问题讨论】:
标签: ios swift sprite-kit uikit