Я пытаюсь создать небольшую игру, но когда приложение переключится на сцену игры (при нажатии кнопки перезапуска), эта сцена игры не будет загружаться правильно. Он даст ошибку: thread 1 exc_bad_instruction (code = exc_i386_invop subcode = 0x0). Вся игра отлично работает в начале (если я еще не умер), но когда я умру, я перейду на другую сцену с кнопкой перезапуска, и как только эта кнопка перезапуска будет нажата, я снова пойду в игру. Я не буду даже получить правильный фон и т.д.Ошибка переключения сцен
Код:
Game Scene (в этой части будет происходить ошибка)
func enemySpawn() {
let enemy = SKSpriteNode(imageNamed: "Enemy")
let minValue = self.size.width/8
let maxValue = self.size.width - 150
let spawnPoint = UInt32(maxValue - minValue) // HERE IS THE ERROR
enemy.position = CGPoint(x: CGFloat(arc4random_uniform(spawnPoint)), y: self.size.height)
enemy.physicsBody = SKPhysicsBody(rectangleOf: enemy.size)
enemy.physicsBody?.affectedByGravity = false
enemy.physicsBody?.categoryBitMask = physicsCatagory.enemy
enemy.physicsBody?.contactTestBitMask = physicsCatagory.bullet
enemy.physicsBody?.isDynamic = true
let action = SKAction.moveTo(y: -70, duration: TimeInterval(enemyMoveSpeed))
let actionDone = SKAction.removeFromParent()
enemy.run(SKAction.sequence([action, actionDone]))
self.addChild(enemy)
}
Это рестарт сцена:
var restartButton : UIButton!
override func didMove(to view: SKView) {
scene?.backgroundColor = UIColor.white
restartButton = UIButton(frame: CGRect(x: 0, y: 0, width: view.frame.size.width/3, height: 30))
restartButton.center = CGPoint(x: view.frame.size.width/2, y: view.frame.size.height/7)
restartButton.setTitle("Play Again", for: UIControlState.normal)
restartButton.setTitleColor(UIColor.black, for: UIControlState.normal)
restartButton.addTarget(self, action: #selector(StartViewController.restart), for: UIControlEvents.touchUpInside)
self.view?.addSubview(restartButton)
}
func restart() {
self.view?.presentScene(GameScene(), transition: SKTransition.crossFade(withDuration: 0.3))
restartButton.removeFromSuperview()
}
Надеюсь, кто-то сможет мне помочь! Спасибо!
Есть ли у вас такая же проблема на реальном устройстве? – siarheibrazil
Я не могу проверить это сейчас, потому что я достиг максимального предела ID приложения 10 дней в течение 7 дней. –