Я создаю приложение в комплекте спрайтов, и я пытаюсь загрузить его из сцены, которая не является по умолчанию «GameScene». Я уже создал новый файл .sks под названием «Level1» и создал класс Touch Cocoa под названием «Level1.swift». Тем не менее, сцена в «Level1.swift» по-прежнему не отображается в приложении.Отображение разного SKScene Swift
Вот код для Level1.swift:
import Foundation
import SpriteKit
class Level1: SKScene {
var tile = Tile(tile: SKShapeNode(rect: CGRect(x: 0, y: 0, width: 320, height: 320), cornerRadius: 10.0))
var tile2 = Tile(tile: SKShapeNode(rect: CGRect(x: 0, y: 0, width: 320, height: 320), cornerRadius: 10.0))
var tile3 = Tile(tile: SKShapeNode(rect: CGRect(x: 0, y: 0, width: 320, height: 320), cornerRadius: 10.0))
var tile4 = Tile(tile: SKShapeNode(rect: CGRect(x: 0, y: 0, width: 320, height: 320), cornerRadius: 10.0))
override func didMove(to view: SKView) {
backgroundColor = UIColor.white
tile.color = UIColor.green
tile.maxTileNumberCounter = 4
tile.tileNumber = 1
tile.initializeTile()
tile2.color = UIColor.blue
tile2.maxTileNumberCounter = 4
tile2.tileNumber = 2
tile2.initializeTile()
tile3.color = UIColor.blue
tile3.maxTileNumberCounter = 4
tile3.tileNumber = 3
tile3.initializeTile()
tile4.color = UIColor.blue
tile4.maxTileNumberCounter = 4
tile4.tileNumber = 4
tile4.initializeTile()
self.addChild(tile.tile)
self.addChild(tile2.tile)
self.addChild(tile3.tile)
self.addChild(tile4.tile)
}
А вот код для моего ViewController:
import UIKit
import SpriteKit
import GameplayKit
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "Level1") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
override var shouldAutorotate: Bool {
return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
if UIDevice.current.userInterfaceIdiom == .phone {
return .allButUpsideDown
} else {
return .all
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Release any cached data, images, etc that aren't in use.
}
override var prefersStatusBarHidden: Bool {
return true
}
}
Любая помощь в получении этой работы было бы весьма признателен.
Если вы поместите код плитки в 'GameScene.swift' и обновите GameViewController для загрузки' GameScene', это сработает так, как ожидалось? Всегда полезно изолировать неожиданное поведение! –
Вы уверены, что вы определили пользовательский класс для Level1 в файле sks – Knight0fDragon