NinJump Like 游戏 Swift(分数更新问题)

NinJump Like game Swift (Score updating issue)

我正在尝试使用 Swift UIKit 创建类似 Ninjump 的游戏。一切正常,直到我添加了分数标签。这实际上很奇怪,我不明白为什么会这样。
所以我有一个敌人,当计时器更新时,它会向下播放 15px 的电影。和一个忍者,在屏幕上触摸时从左向右移动。当敌人移出屏幕时,分数会更新。发生的事情是,当敌人离开屏幕时,分数更新为 1...2..3。但是每当分数更新时,忍者如果在右边就会自动向左移动。我不知道为什么会这样。每当一个敌人走出屏幕时,它就会发生。这是我的代码

import UIKit

class GameViewController: UIViewController {

    @IBOutlet weak var Ninja: UIImageView!
    var score = 0
    @IBOutlet weak var scoreLabel: UILabel!
    var startGame = NSTimer()

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
        self.updateNinja()
    }

    var enemyImage = UIImageView(frame: CGRectMake(32, -300, 100, 100))

    override func viewDidLoad() {
        super.viewDidLoad()

        self.scoreLabel.text = "0"
        enemyImage.image = UIImage(named: "enemy")
        self.view.addSubview(self.enemyImage)

    }

    override func viewDidAppear(animated: Bool) {
        startGame = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
    }




    func update() {

        if CGRectIntersectsRect(self.Ninja.frame, self.enemyImage.frame) {
            println("Game Over")
        }

        // show the enemy again and again
        if self.enemyImage.frame.origin.y > self.view.frame.height {
            self.enemyImage.frame.origin.y = -100
            score++ // THIS IS THE PROBLEM
            self.scoreLabel.text = "\(score)"

        }

        // move the enemy image downwards
        enemyImage.frame.origin.y += 15

    }




    var isLeft:Bool = false // check where is the ninja left/right

    func updateNinja() {

        if isLeft {
            isLeft = false
            UIView.animateWithDuration(0.3, animations: { () -> Void in
                self.Ninja.frame.origin.x = 32
             })

        } else {
            isLeft = true
            UIView.animateWithDuration(0.3, animations: { () -> Void in
                self.Ninja.frame.origin.x = self.rightBar.frame.origin.x - 50
                }) 
        }

      }

}

更奇怪的是,当我删除 score++ 时,它工作正常。

更新:当我尝试更新 scoreLabel 的文本时,它发生了。有什么解决办法吗?

隐藏该标签并尝试以编程方式创建新标签,更新分数的新标签。让我知道它是否适合你,我也发生过一次。