Я создал проект SpriteKit и определил функцию в файле GameScene.swift. Указанная функция создает SKSpriteNode и без проблем запускается при вызове внутри класса.Как вы называете функцию, определенную в другом классе?
func generateShip() {
self.removeAllChildren()
let SKSprite1 = SKSpriteNode(imageNamed: "Spaceship")
SKSprite1.size = CGSize(width: CGFloat(arc4random_uniform(UInt32(200))), height: CGFloat(arc4random_uniform(UInt32(200))))
SKSprite1.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
self.addChild(SKSprite1)
}
//if I called it here with touchesBegan, it worked.
Теперь, в моем ViewController, я создал простую кнопку и связал ее с ее быстрым файлом. Я сделал несколько вещей перед следующим кодом, но это та часть, с которой у меня проблемы.
let gameScene = GameScene()
@IBAction func newShip(sender: AnyObject) {
gameScene.generateShip() // am I doing this wrong?
}
При запуске приложения и нажатии кнопки ничего не происходит. Что мне нужно изменить/сделать, чтобы функция ... хорошо ... функция?
вы телеграфировать вашей сцены игры в остальной части приложения? –
Где эта строка в коде? 'let gameScene = GameScene()'. Похоже, вы не можете работать с правильным экземпляром сцены. –
Я также интересуюсь полным кодом, в котором вы создаете и представляете свой GameScene –