这是我的第一篇文章 - 我搜索了很长时间,但找不到答案。
我正在与SpriteKit进行游戏,并且希望玩家能够一次只发射一枚炸弹 - 即在前一枚炸弹爆炸或离开屏幕之前它们无法再次发射。目前,当玩家点击屏幕时,他们可以发射任意数量的炸弹。
非常感谢任何帮助!
谢谢, 伊恩
答案 0 :(得分:1)
为您的错误创建一个SKSpriteNode属性。 为导弹的移动创建一个SKAction,并为操作提供一个键,以便您可以通过名称来引用它。 按下开火按钮后,检查指定的操作是否已在运行;如果是,则什么也不做,否则运行'fireMissile'动作。
答案 1 :(得分:1)
史蒂夫的想法很好,比我的好,但这里有一个更新手友好的解释IMO ......把它放在你的游戏中:)
var canFireMissile = true
func fireMissile() {
guard canFireMissile else { return }
canFireMissile = false // So you can't fire anymore missiles until 0.5secs later
let wait = SKAction.wait(forDuration: 0.5) // the duration of the missile animation (example)
let reset = SKAction.run { canFireMissile = true } // lets us refire the missile
let sequence = SKAction.sequence([wait, reset])
run(sequence)
}
override func mouseDown(with event: NSEvent) { // touchesBegan on iOS
fireMissile()
}