Jogo atrasado quando o AVAudioPlayer é reproduzido
Estou criando um jogo em que o usuário controla um personagem com um jetpack. Quando o jetpack cruza um diamante, adiciono o diamante ao total e depois toco um som. No entanto, o som faz o jogo parar por um décimo de segundo ou mais e interrompe o fluxo. Este é o código que estou usando:
var diamondSound = NSBundle.mainBundle().URLForResource("diamondCollect", withExtension: "wav")!
var diamondPlayer = AVAudioPlayer?()
class GameScene: SKScene{
override func didMoveToView(view: SKView) {
do {
diamondPlayer = try AVAudioPlayer(contentsOfURL: diamondSound)
guard let player = diamondPlayer else { return }
player.prepareToPlay()
} catch let error as NSError {
print(error.description)
}
}
E depois:
override func update(currentTime: CFTimeInterval) {
if character.intersectsNode(diamond){
diamondPlayer?.play()
addDiamond()
diamond.removeFromParent()
}
}
Também estou usando o Sprite Kit, se isso importa. Qualquer ajuda é muito apreciada!