如何快速知道两个日期之间的时间间隔

时间:2021-04-02 01:50:23

标签: ios swift xcode augmented-reality

所以我正在开发 AR 应用。每 3 秒就会在玩家所在的房间周围出现一个新节点,直到创建 25 个。在创建它们时,用户必须在创建节点后立即销毁它们。但是我想在用户销毁的第一个节点和最后一个节点之间创建一个时间间隔,这样我就可以向用户显示这样做所花费的时间,跟踪高分等等。

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        guard let touch = touches.first else {return}
    
        let location = touch.location(in: self)
        let node = nodes(at: location)
        
        if let sprite = node.first {
        let scaleOut = SKAction.scale(to: 3, duration: 0.4)
        let fadeOut = SKAction.fadeOut(withDuration: 0.4)
            let remove = SKAction.removeFromParent()
        let group = SKAction.group([scaleOut, fadeOut])
        let sequence = SKAction.sequence([group, remove])
            sprite.run(sequence)
            targetCount -= 1
        
    }

guard 语句确保计算机可以捕获用户的第一次触摸,然后该触摸将其保存在一个变量中,查询该触摸在视图中的位置。然后,如果该位置有任何节点,第一个节点将使用 SKActions 通过动画移除。如果我需要更具体,请告诉我。提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为你想做的是:

let startTime = Date()

/* Then some time later */

let timeInterval = Date().timeIntervalSince(startTime)

timeInterval 是一个 TimeInterval,它是 Double 的类型别名。这是两个 Date 实例之间的秒数。

另一方面,如果您想要做的实际上是延迟做某事,但实际上不需要 timeInterval 出于任何其他原因,请查看 DispatchSemphore.wait(timeout:)DispatchQueue.asyncAfter(...)