【问题标题】:How do I have a money Int Be Updated by a Function that is run by a SKAction?我如何让 SKAction 运行的函数更新 Int?
【发布时间】:2015-11-07 16:37:39
【问题描述】:

所以我试图让 moneyLabel 将其文本更新为 money:Int 的值每秒增加 'x' 数量。这是我的代码,我不知道它有什么问题或需要它来工作:

    var money: Int = 0

    let moneyLabel = SKLabelNode(fontNamed:"Futura")
    moneyLabel.position = CGPoint(x: CGRectGetMidX(self.frame),y: CGRectGetMidY(self.frame))
    moneyLabel.fontColor = SKColor.greenColor()
    moneyLabel.fontSize = 24
    moneyLabel.text = "\(money)"

    self.addChild(moneyLabel)



    func MoneyTimer() {

        var money = money + 10


    }

    let delay = SKAction.waitForDuration(1)
    let dayTimer = SKAction.sequence([MoneyTimer(), delay])

我正在使用 swift 和 SpriteKit

【问题讨论】:

    标签: swift sprite-kit skaction


    【解决方案1】:

    SKAction.runBlockSKAction.repeatActionForever 将帮助您实现目标。

    用这个替换你的代码:

    var money: Int = 0
    
    let moneyLabel = SKLabelNode(fontNamed:"Futura")
    moneyLabel.position = CGPoint(x: CGRectGetMidX(self.frame),y: CGRectGetMidY(self.frame))
    moneyLabel.fontColor = SKColor.greenColor()
    moneyLabel.fontSize = 24
    moneyLabel.text = "\(money)"
    
    self.addChild(moneyLabel)
    
    let moneyTimer = SKAction.runBlock {
        money += 10
        moneyLabel.text = "\(money)"
    }
    
    let delay = SKAction.waitForDuration(1)
    let dayTimer = SKAction.sequence([moneyTimer, delay])
    self.runAction(SKAction.repeatActionForever(dayTimer))
    

    顺便说一句,我会将变量 money 更改为您当前班级的属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 2016-07-17
      • 1970-01-01
      • 2017-04-21
      • 2021-11-12
      • 2017-08-04
      • 1970-01-01
      相关资源
      最近更新 更多