我有另一個視圖來處理上一屆會議以及排行榜的分數。我如何從GameOver類的GameScene類訪問我的分數int?從另一個類訪問整數
隨着出去找多,我試圖這樣做是爲了找到路自己:
class GameOver: SKScene {
let score = GameScene().score
init(size: CGSize, won:Bool) {
super.init(size: size)
backgroundColor = SKColor.whiteColor()
var message = "\(score)"
println(score)
let label = SKLabelNode(fontNamed: "AvenirNextCondensed-Heavy")
label.text = message
label.fontSize = 40
label.fontColor = SKColor.blackColor()
label.position = CGPoint(x: size.width/2, y: size.height/2)
addChild(label)
}
我想,如果我創建了一個變量我的成績在GameScene它會工作,但它確實它使用得分變量等於0.那麼,我將如何將球員死亡時的得分轉移到上面的場景?
class GameScene: SKScene, SKPhysicsContactDelegate {
struct PhysicsCategory {
static let None: UInt32 = 0
static let All: UInt32 = UInt32.max
static let Enemy: UInt32 = 0b1
static let Player: UInt32 = 0b10
}
let player = SKSpriteNode(imageNamed: "Player")
var playerAlive: Bool = true
var touched:Bool = false
var location = CGPointMake(0, 0)
var difficulty = 1.0
var timer: NSTimer!
var scoreTimer: NSTimer!
var lastAddedTime : CFTimeInterval = 0
var score: Int = 0
var scoreLabel: SKLabelNode!
override func didMoveToView(view: SKView) {
backgroundColor = SKColor.whiteColor()
player.position = CGPoint(x: size.width * 0.5, y: size.height * 0.25)
player.physicsBody = SKPhysicsBody(circleOfRadius: player.size.width/2)
player.physicsBody?.dynamic = true
player.physicsBody?.categoryBitMask = PhysicsCategory.Player
player.physicsBody?.contactTestBitMask = PhysicsCategory.Enemy
player.physicsBody?.collisionBitMask = PhysicsCategory.None
player.physicsBody?.usesPreciseCollisionDetection = true
addChild(player)
physicsWorld.gravity = CGVectorMake(0, 0)
physicsWorld.contactDelegate = self
var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "increaseDifficulty", userInfo: nil, repeats: true)
var scoreTimer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "addScore", userInfo: nil, repeats: true)
scoreLabel = SKLabelNode(fontNamed: "AvenirNextCondensed-Heavy")
scoreLabel.text = "\(score)"
scoreLabel.fontColor = SKColor.blackColor()
scoreLabel.fontSize = 40
scoreLabel.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame) + self.frame.size.height * 0.4)
addChild(scoreLabel)
}
func addScore() {
score += 1
println(score)
}
只是一個簡短的問題。這會在我的GameScene或GameOver中需要嗎? @aks – swift 2015-03-31 06:05:32
如果您在GameScene中修改score var,然後在GameScene中聲明此結構,您可以像GameScene類中的'staticScore ++'一樣直接更改其值。在GameOver類中使用'GameScene.staticScore' – Aks 2015-03-31 06:08:41