Personally, I handle it a little differently.
I like to make my level files in the scene editor, this makes them very fast.
GameScene.swift GameScene.sks(, gameHUD, , , ... --)
Level1.sks, Level2.sks .. Level, , Level.sks.
GameScene , .
. , , sks Levels GameScene, GameScene .
func createLevel(levelID: Int) {
if let levelNode = SKReferenceNode(fileNamed: "Level\(levelID)") {
if let background = levelNode.childNode(withName: "backgroundTiles") as? SKTileMapNode {
background.move(toParent: self)
}
if let water = levelNode.childNode(withName: "waterTiles") as? SKTileMapNode {
water.move(toParent: self)
}
if let badGuy = levelNode.childNode(withName: "badGuy") as? SKSpriteNode {
self.badGuy = badGuy
badGuy.move(toParent: self)
}
}
}