2016-10-08 8 views
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 
} 
} 

仕事にこれを得ることに任意の助けいただければ幸いです。

+0

'GameScene.swift'にタイルコードを入れ、' GameScene'を読み込むためにGameViewControllerを更新すると、それは期待通りに機能しますか?予期しない動作を分離することは常に良い考えです! –

+1

sksファイルでカスタムクラスをLevel1に定義したことを確認しましたか – Knight0fDragon

答えて

1

@ Knight0fDragonと同意します。 Level1.sksファイルを確認するには、​​を​​インスペクタのLevel1に設定してください。ここにあるのはdemo

関連する問題