我正在使用SpriteKit在xcode中编写一个小游戏,我决定添加声音,例如当用户点击屏幕时,英雄挥动他的剑并播放相应的声音,我实现它是这样的:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let swoshSound = SKAudioNode(fileNamed: "action.wav")
self.addChild(swoshSound)
}
有声音,只是出现了一个问题——它并没有停止,而是像循环播放一样。我尝试使用如下函数:
scene!.audioEngine.stop()
但是由于某种原因,声音根本没有播放,显然在创建后立即停止。我也试过这样做:
sleep(1)
scene!.audioEngine.stop()
声音根据需要出现了 1 次,但 sleep 命令可以说是让整个游戏进入睡眠状态,如果每次按下它都会停止一秒钟,那么它就会有点不对劲。请帮助我如何解决这个问题?也许有一些内置方法或如何解决?
尝试使用