2016-08-15 69 views
0

我试图在游戏结束时更新我的​​分数标签。由于变量(似乎是)在我认为范围之外,我只是删除标签并在adjust函数中创建一个新标签。我不熟悉迅速,并会感谢帮助。我可以重新定位还是必须创建新标签?不能弄明白。谢谢从父节点移除子Swift 2

func loadScore() { 
    let scoreBand = SKLabelNode(fontNamed: "Arial") 
    scoreBand.name = StickHeroGameSceneChildName.ScoreName.rawValue 
    scoreBand.text = "0" 
    scoreBand.position = CGPointMake(0, DefinedScreenHeight/2 - 200) 
    scoreBand.fontColor = SKColor.whiteColor() 
    scoreBand.fontSize = 100 
    scoreBand.zPosition = StickHeroGameSceneZposition.ScoreZposition.rawValue 
    scoreBand.horizontalAlignmentMode = .Center 

    addChild(scoreBand) 
} 
func adjustScore() { 
    //var scoreBand = scoreBand 
    scoreBand.position = CGPointMake(0, DefinedScreenHeight/2 - 100)//doesnt recognize scoreBand 

} 

回答

0

您可以重新定位,只需声明scoreBand作为您的包含类的变量。例如:

class SomeClass: SKSpriteNode { 

    var scoreBand: SKLabelNode! 

    override init(size: CGSize) { 
     scoreBand = SKLabelNode(fontNamed: "Arial") 

     super.init(size: size) 

     anchorPoint = CGPointMake(0.5, 0.5) 
     physicsWorld.contactDelegate = self 
    } 

    func loadScore() { 
     scoreBand.name = StickHeroGameSceneChildName.ScoreName.rawValue 
     scoreBand.text = "0" 
     scoreBand.position = CGPointMake(0, DefinedScreenHeight/2 - 200) 
     scoreBand.fontColor = SKColor.whiteColor() 
     scoreBand.fontSize = 100 
     scoreBand.zPosition = StickHeroGameSceneZposition.ScoreZposition.rawValue 
     scoreBand.horizontalAlignmentMode = .Center 

     addChild(scoreBand) 
    } 

    func adjustScore() { 
     scoreBand.position = CGPointMake(0, DefinedScreenHeight/2 - 100) 
    } 
} 
+0

谢谢卡特,它带来了另一个错误,我编辑你的答案与它带来的错误。对不起,新的这个网站 – hahu

+0

@hahu这一切都很好!通常编辑是在你原来的问题上进行的,而不是答案。无论如何,我已经更新了我的答案,以解决您遇到的错误。 – Carter