iOS Swift SpriteKit - 如何检测用户触摸 Sprite 之间耗时

标签 ios swift sprite-kit nstimeinterval

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

最佳答案

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

您所需要的只是增量时间。我假设您已经解决了该部分,但我会发布它以防万一

场景属性

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

场景的更新方法(还为 Sprite 创建一个更新方法,并在此处将 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)

Sprite 的时间属性

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

你的 Sprite 更新/触摸方法

func touched(){
    self.timeSinceTouched = 0.0
}

func update(delta: CFTimeInterval) {

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

关于iOS Swift SpriteKit - 如何检测用户触摸 Sprite 之间耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30158614/

相关文章:

ios - 编辑 CoreData 对象然后保存上下文

ios - Firebase & JSQMessagesViewController 在 Ios Swift 2 中的一对一聊天

java - BufferedWritter-like 来自 java on swift?

ios - 动态改变UIPageControl.appearance的点的背景颜色

ios - 设置 Spritekit 重力源

ios - 如果我使用 iPad 尺寸创建我的应用程序,如何找到 iPhone 尺寸的 'safe region'?

ios - 重新加载 fetchedResultsController 数据

ios - 网络套接字 : Starscream "masked and rsv data is not currently supported"

ios - 非阻塞 UIView 动画缩放

swift - 如何按一个轴按比例缩放 Sprite - swift/spritekit