Язык: Swift 3.0 --- IDE: Xcode 8.0 beta 2 --- Проект: iOS Game (SpriteKit)
Я создаю игру для iOS и знаю, что Apple очень строга со своими правилами, чтобы принять приложение/игру. Поэтому я хочу знать, как правильно настроить игру.
Я узнал от Google, чтобы создать новый проект SpriteKit и выполнить следующую настройку:
В GameViewController.swift очистите viewDidLoad() и добавьте все это:
override func viewDidLoad() {
super.viewDidLoad()
let skView = self.view as! SKView
let scene = GameScene(size: skView.bounds.size)
scene.scaleMode = .aspectFit
skView.presentScene(scene)
}
В GameScene.swift удалите все и оставьте этот код:
import SpriteKit
class GameScene: SKScene {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(size: CGSize) {
super.init(size: size)
// add all the code of the game here...
}
}
и разработать мою игру внутри override init
Но я думаю, что на самом деле неправильно запускать игру с помощью init. И что правильный путь — использовать метод didMove(). Так должен ли код быть написан здесь? :
override func didMove(to view: SKView) {
<#code#>
}
Кто-нибудь знает, какой из них правильный? И почему? Также, если это неправильно, как я это делаю, можете ли вы объяснить мне, как использовать метод didMove?
Не знаю, глупый ли это вопрос, просто меня беспокоило, что использование init неправильно, и я хотел спросить, знает ли кто-нибудь об этом больше.
let scene = GameScene(size: skView.bounds.size)
, используйтеGameScene(fileNamed:)
илиGameScene()
сscaleMode = .ResizeFill
.GameScene(size:)
следует использовать с другими тремя режимами масштабирования,.Fill
,.AspectFill
и.AspectFit
, только если вы хотите, чтобы сцена имела статический размер на всех устройствах. Больно ли использовать то, как вы используете, только когда у вас динамически изменяется размер представления, но эй, если вы можете запрограммировать себя, чтобы остановить ошибки до того, как они будут созданы, тогда это прогресс. - person Knight0fDragon   schedule 25.07.2016