2017-03-22 3 views
0

Ok, ich arbeite hier auf Swift-Spielplätzen und kann nicht herausfinden, wie man eine SkScene präsentiert, die eine andere Klasse ist. Bisher habe ich diese SKScene-Datei, GameScene.swift, in meinen Sources-Ordner gestellt und veröffentlicht.Swift: Öffentliche Skscene präsentiert nicht mit Dateiname?

In meiner Haupt-Spielplatz-Datei habe ich versucht:

import PlaygroundSupport 
import SpriteKit 
import XCPlayground 
import Foundation 


let frame = CGRect(x: 0, y: 0, width: 500, height: 600) //view size 
let view = SKView(frame: frame) 

let scene = GameScene(fileNamed: "GameScene") 
//scene.backgroundColor = NSColor.blue 


view.presentScene(scene) 
view.showsFPS = true; 
PlaygroundPage.current.liveView = view 

mit einer anderen Antwort Entlang ich auf Stack-Überlauf gefunden. Nichts funktioniert - der Spielplatz Timeline ist nur eine leere graue und diese ausgegeben:

enter image description here

Ist das unmöglich?

Antwort

1

Ja, es ist möglich, aber im Moment ist Ihr Gamscene-Objekt null. Dies liegt daran, dass GameScene(filenamed: "") nur funktioniert, wenn Sie den Szenenersteller haben. Wünschen Sie, dass Sie nicht in Xcode verwenden.

Stattdessen.

GameScene(size: CGSize) 

verwenden und stellen Sie sicher, dass Sie die Spielszene mit

class GameScene : SKScene { 
     override sceneDidLoad() { 
      super.sceneDidLoad() 



    } 

} 

erstellen, nachdem die Szene von einem

Ansicht präsentieren
let sceneSize = CGSize(width: 250, height: 550) 
    let scene = GameScene(size: sceneSize) 
    let viewRect = CGRect(x: 0, y: 0, width: 250, height: 550) 
    let skView = SKView(frame: viewRect) 
    skView.presentScene(scene) 

PlaygroundPage.current.liveView = skView 

ein Beispiel Das ist zum Einstieg Sie ^^

Verwandte Themen