2016-12-09 2 views
0

Он должен звучать всякий раз, когда игрок собирает монету, но вместо этого, как только персонаж касается монеты, игра замерзает и выходит.Ошибка игры при запуске этой функции?

func playTap() { 
    if let url = Bundle.main.url(forResource: "tap", withExtension: "caf"){ 

     tap = try AVAudioPlayer(contentsOf: url) 
     guard let tap = tap else { return } 

     tap.prepareToPlay() 
     tap.play() 
} else { 
    print(error.localizedDescription) 
    } 

} 
+1

Какое сообщение об ошибке? И какая линия точно вызывает крах? – rmaddy

+0

Мне просто интересно. Помимо проблемы с сбоем, зачем вам нужно создать экземпляр NSURL и AVPlayer, когда пользователь ударяет монету? У вас есть только одна монета во время всей игры? –

+0

Ну, я делаю игру, как птица-птица Флаффи, я добавил монеты между каждой стеновой парой. Поэтому я хочу, чтобы звук звучал на каждой монете! @ElTomato – niX

ответ

0

Я предполагаю, что ваш код будет врезаться в виде того что вы пытаетесь СИЛЫ UnWrap нуля необязательно с ! в конце строки.

let url = Bundle.main.url(forResource: "tap", withExtension: "caf")! 

Попробуйте

if let url = Bundle.main.url(forResource: "tap", withExtension: "caf"){ 
    //Code here 
} else { 
} 

или

guard let url = Bundle.main.url(forResource: "tap", withExtension: "caf") else {} 

РЕДАКТИРОВАНИЕ

проверки орфографии ключевые значения !!

+0

Ждём попробовать, и теперь дайте знать! спасибо кучи – niX

+0

@niX как все прошло? –

+0

Извините, полностью забыл ответить! В конце концов, это не сработало, поэтому я отказался от этого до сих пор, я так долго пробовал>. <Кодирование становится легче haha! Im постоянно получает ошибки, и все чувствует, что ничего не работает! – niX

 Смежные вопросы

  • Нет связанных вопросов^_^