斯威夫特:公共 Skscene 没有以文件名呈现?

Posted

技术标签:

【中文标题】斯威夫特:公共 Skscene 没有以文件名呈现?【英文标题】:Swift: Public Skscene not presenting with filenamed? 【发布时间】:2017-03-22 23:40:26 【问题描述】:

好的,我在这里的 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】:

是的,我有可能,但目前你的游戏场景对象是零。这是因为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

这是一个让你开始的例子^^

【讨论】:

以上是关于斯威夫特:公共 Skscene 没有以文件名呈现?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SKScene 呈现 UIAlertController

呈现 SKScene 后取消隐藏 UIButtons 时延迟?

SKScene touchesEnded 第二次呈现场景时未调用

如何在 SKScene 中呈现 UIViewController?

如何使用社交框架呈现来自 SKscene 的 UIViewController?

从 UIViewController 呈现 SKScene - Swift