Swift: Публичный Skscene не представлен с именем filename?

Хорошо, я работаю на игровых площадках Swift и не могу понять, как представить SkScene, который является другим классом. До сих пор я поместил этот файл SKScene, GameScene.swift, в свою папку Sources и сделал его общедоступным.

В моем файле основной игровой площадки я попробовал:

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

Наряду с любым другим ответом я мог найти переполнение стека. Ничего не работает - временная шкала детской площадки - просто серый, и это выводится:

введите описание изображения здесь

Это невозможно?

1 ответ

Решение

Да, это возможно, но в данный момент ваш объект Gamscene равен нулю. Это потому что GameScene(filenamed: "" ) работает только тогда, когда у вас есть строитель сцены. Жаль, что вы не используете в Xcode.

Вместо. использование

GameScene(size: CGSize)

и убедитесь, что вы создаете игровую сцену с

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



    }

 }

после этого представьте свою сцену из вида

    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

Вот пример для начала ^^

Другие вопросы по тегам