将高分设置为iOS中的已用时间

时间:2016-02-08 01:19:22

标签: ios swift sprite-kit

我的游戏中的高分是基于时间的,我无法将其与当前分数进行比较。到目前为止,这是我的代码,它不起作用:

class GameScene: SKScene, SKPhysicsContactDelegate {

// initialise value for current time
var currentTime = NSDate()
var bestTime = NSDate()

override func didMoveToView(view: SKView) {

    super.didMoveToView(view)

    // set the current time to 0 seconds
    var date0 = NSDate();
    let timeInterval = floor(date0 .timeIntervalSinceReferenceDate / 60.0) * 60.0
    date0 = NSDate(timeIntervalSinceReferenceDate: timeInterval)

    currentTime = date0

    // call to start timer
    NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "printDuration:", userInfo: NSDate(), repeats: true)

然后

func printDuration(timer: NSTimer) {
    if self.view?.paused == false {
        guard let userInfo = timer.userInfo else {
            return
        }
        guard let startDate = userInfo as? NSDate else {
            return
        }

        let duration = NSDate().timeIntervalSinceDate(startDate)
        currentTime = NSDate(timeIntervalSinceReferenceDate: duration)
        currentTimeValueLabel.text = "\(NSString(format:"%3.2f", duration))"
    }
}

我希望能够做下面这样的事情,我可以比较两个变量的时间并相应地设置更高的变量:

if (currentTime > highScore) {
    highScore = currentTime
    highScoreLabel.text = "\(NSString(format:"%3.2f", highScore))"
}

1 个答案:

答案 0 :(得分:0)

您可以在开头的didMoveToView()中设置startDate = NSDate(),然后通过键入

来比较两者以查看持续时间是否更高
if duration > highScore {
    highScore = duration
}