1
私はスプライトキットでアプリケーションを作成していますが、これはデフォルトの「GameScene」ではないシーンからロードしようとしています。私は既に "Level1"というタイトルの新しい.sksファイルを作成し、 "Level1.swift"というCocoa Touch Classを作成しました。しかし、 "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'にタイルコードを入れ、' GameScene'を読み込むためにGameViewControllerを更新すると、それは期待通りに機能しますか?予期しない動作を分離することは常に良い考えです! –
sksファイルでカスタムクラスをLevel1に定義したことを確認しましたか – Knight0fDragon