iOS Swift SpriteKit - 如何检测用户触摸精灵之间经过的时间

时间:2015-05-11 01:56:10

标签: ios swift sprite-kit nstimeinterval

我已经设置了一个match-3游戏,我想跟踪用户在游戏板上触摸有效点(游戏棋子精灵)的秒数:
(1)当加载游戏关卡时,如果用户在5秒内未触摸精灵,则跟踪此; (2)在玩游戏时,如果用户触摸精灵之间经过的时间大于5秒,则跟踪此情况。
(我将使用这些结果向用户提供提示) 我想为此使用NSTimer / NSTimeInterval,但不确定如何实现它。

1 个答案:

答案 0 :(得分:1)

我不建议像其他人建议的那样添加一个整数。

您需要的只是增量时间。我假设您已完成该部分,但我会发布以防万一

场景属性

// time values
var delta:NSTimeInterval = NSTimeInterval(0)
var last_update_time:NSTimeInterval = NSTimeInterval(0)

您的场景更新方法(也为您的精灵创建更新方法,并在此处将delta传递到其中)

 func update(currentTime: NSTimeInterval) {
        if self.last_update_time == 0.0 {
            self.delta = 0
        } else {
            self.delta = currentTime - self.last_update_time
        }

        self.yourSprite.update(self.delta)

您的精灵的时间属性

var timeSinceTouched = NSTimeInterval(0)
let timeLimit = NSTimeInterval(5.0)

您的精灵更新/触摸方法

func touched(){
    self.timeSinceTouched = 0.0
}

func update(delta: CFTimeInterval) {

    if self.timeSinceTouched < self.timeLimit {
        self.timeSinceTouched += delta
    } else {
        // five seconds has elapsed
    }