如何让 SpriteKit Playgrounds 在 Xcode 8 beta 中工作?

Posted

技术标签:

【中文标题】如何让 SpriteKit Playgrounds 在 Xcode 8 beta 中工作?【英文标题】:How do I get SpriteKit Playgrounds working in Xcode 8 beta? 【发布时间】:2016-07-23 15:08:20 【问题描述】:

我希望能够在 Playgrounds 中轻松地制作我的 Sprite Kit 代码原型。 这在 Xcode 7 中运行良好

import UIKit
import SpriteKit
import XCPlayground


let sceneView = SKView(frame: CGRect(x:0 , y:0, width: 480, height: 320))

let scene = SKScene(size: CGSize(width: 480, height: 320))
sceneView.showsFPS = true
sceneView.presentScene(scene)
XCPlaygroundPage.currentPage.liveView = sceneView

let square = SKSpriteNode(imageNamed: "square")
square.name = "shape"
square.position = CGPoint(x: scene.size.width * 0.25, y: scene.size.height * 0.5)

let circle = SKSpriteNode(imageNamed: "circle")
circle.name = "shape"
circle.position = CGPoint(x: scene.size.width * 0.50, y: scene.size.height * 0.5)

let triangle = SKSpriteNode(imageNamed: "triangle")
triangle.name = "shape"
triangle.position = CGPoint(x: scene.size.width * 0.75, y: scene.size.height * 0.5)

scene.addChild(square)
scene.addChild(circle)
scene.addChild(triangle)

在 Xcode 7 中,我得到了一个不错的实时视图

这在 Swift 3 和 8.0 beta 3 (8S174q) 中不起作用。 我必须改变什么?

【问题讨论】:

【参考方案1】:

XCPlayground 模块已被 PlaygroundSupport 替换:

import PlaygroundSupport
import SpriteKit

let sceneView = SKView(frame: CGRect(x:0 , y:0, width: 480, height: 320))

let scene = SKScene(size: CGSize(width: 480, height: 320))
sceneView.showsFPS = true
sceneView.presentScene(scene)
PlaygroundSupport.PlaygroundPage.current.liveView = sceneView

let square = SKSpriteNode(imageNamed: "square")
square.name = "shape"
square.position = CGPoint(x: scene.size.width * 0.25, y: scene.size.height * 0.5)

let circle = SKSpriteNode(imageNamed: "circle")
circle.name = "shape"
circle.position = CGPoint(x: scene.size.width * 0.50, y: scene.size.height * 0.5)

let triangle = SKSpriteNode(imageNamed: "triangle")
triangle.name = "shape"
triangle.position = CGPoint(x: scene.size.width * 0.75, y: scene.size.height * 0.5)

scene.addChild(square)
scene.addChild(circle)
scene.addChild(triangle)

【讨论】:

好的,这很好。但是我该如何查看 SKView?我只有正常的右列,其中包含变量等的结果。没有 SKView 的视图。 找到它...打开“助理编辑器”。最完全不合逻辑的方式。就像停止和玩游乐场的键盘快捷键一样。 这可能会令人困惑。您还需要确保助理编辑器显示时间轴模式以查看您的更新。有时,当您切换回带有实时视图的页面时,Xcode 不会更新 AE。 我发现 Playgrounds “助理编辑器”视图的性能非常糟糕,我不得不返回处理项目并构建到设备。或许有利于定位,但不利于测试动画。 @mfessenden about github.com/mfessenden 我已经打开了一个问题,你能看看吗?

以上是关于如何让 SpriteKit Playgrounds 在 Xcode 8 beta 中工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift Playgrounds 中使用带有纹理的 SKNode 设置 SKScene?

Xcode Playgrounds:源文件无法互相访​​问

如何让一条线跟随触摸而不是在 spritekit 中绘制无限?

Swift Playgrounds 4上线,在iPad上也能编程了

如何在 Playgrounds 中显示原型预览?

如何在 Playgrounds 中将 VC 设置为 Liveview?