1
스프라이트 키트에 응용 프로그램을 만들고 기본 "GameScene"이 아닌 장면에서 응용 프로그램을로드하려고합니다. 이미 "Level1"이라는 제목의 새로운 .sks 파일을 만들고 "Level1.swift"라는 Cocoa Touch 클래스를 만들었습니다. 그러나 "Level1.swift"내의 장면은 여전히 앱에 표시되지 않습니다. 여기 다른 SKScene 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
}
}
여기
는 Level1.swift 코드입니다.
타일 코드를'GameScene.swift'에 넣고 GameViewController를 업데이트하여'GameScene'을로드하면 예상대로 작동합니까? 예기치 않은 동작을 분리하는 것은 항상 좋은 생각입니다! –
sks 파일에서 사용자 지정 클래스를 Level1로 정의했는지 확인 했습니까? – Knight0fDragon