2016-05-17 4 views
-1

Я работаю с этим руководством: https://www.raywenderlich.com/118225/introduction-sprite-kit-scene-editorupdateCamera() метод приводит к ошибке: EXC_BAD_INSTRUCTION

Работа с редактором Xcode сцены, я попытался добавить объект камеры в сцене, а затем этот объект камера пребывания сосредоточен на спрайте игрока во все времена. Предполагается, что эта камера обновит свою позицию, когда игрок спрайта обновит свое положение. Функция используется для обновления камеры является:

func updateCamera() { 
    if let camera = camera { 
    camera.position = CGPoint(x: player!.position.x, y: player!.position.y) 
    } 
} 

Этот метод вызывается только когда сцена первоначально загружает и когда обновления позиции игрока спрайта. Ошибка появляется на строке, начинающейся с «camera.position =» и появляется сразу после запуска игры. Остальная часть работы с камерой, которая не находится в коде, находится в редакторе сцены, где объект камеры называется «камера», начинается в центре спрайта игрока и устанавливается как камера сцены.

Любая помощь по устранению этой ошибки будет принята с благодарностью.

+3

Вы уверены, что «игрок» не ноль? Вы уверены, что 'player.position' не ноль? – Putz1103

+0

@ Putz1103 ранее в коде, 'player' присваивается значение 'self.childNodeWithName (" player ") как? SKSpriteNode 'и используется во всем коде, чтобы обновить позицию игрока и взаимодействовать с вражескими спрайтами и другими объектами. Если вы хотите, я могу опубликовать весь код программы, поскольку он не слишком длинный. – cbarlow17

ответ

0

Я обнаружил, что моя проблема заключалась в том, что я раньше вызывал функцию updateCamera в своем коде. Я вызывал его до того, как player получил значение, подобное @ Putz1103, так как однажды я вызвал метод после того, как player имел значение, с которым работал метод.

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