【问题标题】:Total played time of game in Xcode?在 Xcode 中玩游戏的总时间?
【发布时间】:2017-05-17 06:04:26
【问题描述】:

我正在 Xcode 上创建这个游戏,我想以秒为单位跟踪总游戏时间作为分数。但是如何将总播放时间保持在变量中?谢谢!

【问题讨论】:

  • 你用的是SpriteKit还是UIKit?
  • 我正在使用 SpriteKit

标签: ios swift xcode time timer


【解决方案1】:

最简单的方法是使用 Date() 保存游戏开始的时间戳,并在游戏结束时调用如下代码:

let seconds = Date().timeIntervalSinse(startDate)

常量“秒”将包含 Double 格式的秒数。 如果您想检查用户在应用程序中花费了多少时间,保存 startDate 的最佳位置是 applicationDidBecomeActive(_ application: UIApplication) 是您的应用程序委托和完成日期 - applicationWillResignActive(_ application: UIApplication)

【讨论】:

  • 获得秒数后,您应该考虑在 UserDefaults 中保存时间并增加它,以便在多次使用该应用后获得“总播放时间”值。
  • 我的应用名为 FlyingPig Marathon,我输入了 applicationDidBecomeActive(_application: FlyingPig Marathon)。这给了我一个错误。什么是正确的语法?我正在使用 SpriteKit
  • 您使用什么语言? Swift 还是 Objective-C?
  • 我使用 Swift____
【解决方案2】:

您可以为此目的使用NSTimer。创建类变量totalTime

var totalTime = 0

创建一个计时器

let timer: NSTimer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(tick), userInfo: nil, repeats: true)

然后你可以定义你的 tick 方法为

func tick() {
    totalTime += 1
}

完成后别忘了让计时器失效

【讨论】:

  • 我试图在某处使计时器无效,但它不起作用。我应该在 didMove 或 touchesBegan 或其他东西的开头重新分配 var 0 吗?
  • 这取决于您希望计时器停止的位置。由于我不知道该应用程序的工作原理,因此我无法建议一个使计时器无效的地方。如果您遇到语法问题,请使用timer.invalidate()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 2016-04-15
  • 1970-01-01
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多