Здравствуйте
В уроке мы создаем метод позволяющий нам стрелять лазером
func playerSpaceShipFire() {
let redLaser = SKSpriteNode(imageNamed: "redLaser")
redLaser.xScale = 0.8
redLaser.yScale = 0.8
redLaser.zPosition = 1
redLaser.position = CGPoint(x: spaceShipLayer.position.x, y: spaceShipLayer.position.y)
let moveAction = SKAction.moveTo(y: self.frame.height + 30, duration: 1)
let removeLaser = SKAction.removeFromParent()
let laserSequance = SKAction.sequence([moveAction, removeLaser])
redLaser.run(SKAction.repeatForever(laserSequance))
addChild(redLaser)
}
Далее в методе didMove(to view: SKView), в конце мы создаем таймер интервала
let laserTimer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: playerSpaceShipFire", userInfo: nil, repeats: true)
И именно из-за selector приложение падает при запуске, выдавая ошибку:
Thread 1: signal SIGABRT
libc++abi.dylib: terminating with uncaught exception of type NSException
Если закомментировать эту строку, то все работает, но лазера естественно нет.
Xcode предлагает изменить selector с начало на:
selector: Selector(“playerSpaceShipFire”)
а потом на:
selector: Selector((“playerSpaceShipFire”))
Результат тот же, подскажите в чем ошибка?