【发布时间】:2014-07-19 04:01:51
【问题描述】:
所以我试图在一个名为 PlayScene 的类中的不同文件中引用一个名为 high score 的变量。我如何在我的 GameScene.swift 文件中引用那个高分。这是我目前的 GameScene.swift 文件,但与
self.highscoreText.text = "Highscore: \(highscoreshow)
它说 highscoreshow 是一个未解析的标识符,因为我不知道如何从另一个类引用该变量
import SpriteKit
class GameScene: SKScene {
let playButton = SKSpriteNode(imageNamed:"play")
let title = SKSpriteNode(imageNamed: "title")
let highscoreText = SKLabelNode(fontNamed: "Chalkduster")
override func didMoveToView(view: SKView) {
self.playButton.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
self.title.position = CGPointMake(CGRectGetMaxX(self.frame) - 150
, CGRectGetMaxY(self.frame) - 150)
self.highscoreText.text = "Highscore: \(highscore)"
self.highscoreText.fontSize = 42
self.highscoreText.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame) - 150)
self.addChild(self.playButton)
self.addChild(self.title)
self.addChild(self.highscoreText)
self.backgroundColor = UIColor(hex: 0x80D9FF)
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
if self.nodeAtPoint(location) == self.playButton {
var scene = PlayScene(size: self.size)
let skView = self.view as SKView
skView.ignoresSiblingOrder = true
scene.scaleMode = .ResizeFill
scene.size = skView.bounds.size
skView.presentScene(scene)
}
}
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
这是另一个类中创建和存储高分变量的函数:
func died() {
var defaults = NSUserDefaults()
var highscore = defaults.integerForKey("highscore")
if (score > highscore){
defaults.setInteger(score, forKey: "highscore")
}
var highscoreshow = defaults.integerForKey("highscore")
if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
let skView = self.view as SKView
skView.ignoresSiblingOrder = true
scene.size = skView.bounds.size
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
}
【问题讨论】:
-
确实
highscore是一个 unresolved 标识符。它不能神奇地找出你想使用哪个highscore -
不,我的意思是我已经在另一个班级解决了。那么我该如何访问它@BryanChen
-
请去掉不相关的方法,并添加更多关于其他类的信息,以便我们更容易理解问题。
-
好吧,我做到了。你现在能帮我吗@jtbandes
标签: swift sprite-kit