1
我在sprite-kit和swift中编写了一个应用程序,当你触摸屏幕时,一个精灵(玩家)在另一个精灵向其移动时抛出一个子弹。如果玩家击中另一个精灵,则射弹和精灵消失。游戏的一个问题是,如果玩家迅速触摸屏幕,他可以轻松地在游戏中提高自己的分数。我怎样才能让代码只识别屏幕触摸每一个让我们说.3秒?过滤快速用户触摸输入
我在sprite-kit和swift中编写了一个应用程序,当你触摸屏幕时,一个精灵(玩家)在另一个精灵向其移动时抛出一个子弹。如果玩家击中另一个精灵,则射弹和精灵消失。游戏的一个问题是,如果玩家迅速触摸屏幕,他可以轻松地在游戏中提高自己的分数。我怎样才能让代码只识别屏幕触摸每一个让我们说.3秒?过滤快速用户触摸输入
在SpriteKit/GameplayKit游戏中,您的大部分代码都在游戏循环中运行,您不断地通过当前时间。这就是这个函数在SKScene是:
override public func update(_ currentTime: TimeInterval) {
}
在这里经常可以跟踪时间和启用/禁用的东西。为了保持它的简单:
添加以下瓦尔
var firingEnabled = true
var enableFiringAtTime: TimeInterval = 0
var currentTime: TimeInterval = 0
当他们开火,添加以下代码
if firingEnabled {
firingEnabled = false
enableFiringAtTime = self.currentTime + 0.3
// your fire code here
}
而且在更新覆盖
self.currentTime = currentTime
if currentTime > enableFiringAtTime {
firingEnabled = true
}
请告诉我们你已经尝试过了。请参阅:[如何创建最小,完整且可验证的示例?](https://stackoverflow.com/help/mcve) – CodingNinja