【发布时间】:2021-04-02 01:50:23
【问题描述】:
所以我正在开发一款 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 使用动画将第一个节点删除。如果我需要更具体,请告诉我。提前致谢。
【问题讨论】:
-
所以基本上你有一个时间戳属性,你在第一个节点被触摸时设置,然后你有一个时间戳或间隔属性,你在最后一个节点被触摸时设置/计算。您需要确定代码中的哪个位置来执行此操作,我猜
touchesBegan可以用于这两种操作。
标签: ios swift xcode augmented-reality