#ios #swift #swift-playground
#iOS #swift #swift-игровая площадка
Вопрос:
Я пытаюсь использовать SpriteKit, чтобы показать что-то в playground в редакторе assistant. Однако ничего не появилось. Ниже приведен код. И если кто-нибудь может показать результаты (синий прямоугольник), пожалуйста, сообщите мне. Если нет, пожалуйста, выясните, в чем проблема.
import UIKit
import SpriteKit
let view:SKView = SKView(frame: CGRectMake(0, 0, 1000, 800))
let scene:SKScene = SKScene(size: CGSizeMake(1000, 800))
scene.scaleMode = SKSceneScaleMode.AspectFit
let blueBox: SKSpriteNode = SKSpriteNode(color: UIColor.blueColor(), size: CGSizeMake(300, 300))
blueBox.position = CGPointMake(512, 384)
scene.addChild(blueBox)
view.presentScene(scene)
Комментарии:
1. Как получить доступ к touchesBegan в вашей playground?
Ответ №1:
Вы можете увидеть текущее состояние представления, нажав кнопку QuickLook (глаз) или кнопку с обведенным плюсом на боковой панели. Но чтобы увидеть анимацию вашей сцены SpriteKit, вам, вероятно, нужен просмотр в реальном времени. Для этого вам нужна платформа XCPlayground.
import XCPlayground
XCPShowView("my SpriteKit view", view)
Подробнее читайте об изучении и оценке кода Swift на Playground в справке Xcode или смотрите сессию 408 WWDC 2014: Swift Playgrounds.
Комментарии:
1. кстати
XCPlayground
, только OSX2. Здесь я использую UIKit, и он может не запускаться в OSX, который может запускать XCPlayground. И я попробовал кнопку «Глаз», но ничего не произошло.
3. SpriteKit является кроссплатформенным, поэтому вы можете создавать прототипы на игровой площадке OS X, а затем вставлять код в проект iOS. (С несколькими оговорками, с некоторыми из которых вы можете справиться, используя
SKColor
вместоUIColor
.)4. Обратите внимание, что даже добавление этих строк не приводит к отображению представления в редакторе assistant. Я обновил вопрос.
5. На данный момент это
XCPShowView("my SpriteKit view", view: view)
Ответ №2:
Поскольку XCPShowView
в Xcode 7.1 это было запрещено, PlaygroundPage
PlaygroundSupport
вместо этого используйте in . Ниже приведен пример использования SpriteKit в Playground, который вдохновлен этим.
import SpriteKit
import PlaygroundSupport
// Create the SpriteKit View
let view = SKView(frame: CGRect(x: 0, y: 0, width: 500, height: 500))
// Create the scene and add it to the view
let scene = SKScene(size: CGSize(width: 500, height: 500))
scene.scaleMode = SKSceneScaleMode.aspectFit
scene.backgroundColor = .white
view.presentScene(scene)
// Add a red box to the scene
let redBox = SKSpriteNode(color: SKColor.red, size: CGSize(width: 200, height: 200))
redBox.position = CGPoint(x: 250, y: 250)
redBox.run(SKAction.repeatForever(SKAction.rotate(byAngle: -5, duration: 5)))
scene.addChild(redBox)
// Show in assistant editor
PlaygroundPage.current.liveView = view
PlaygroundPage.current.needsIndefiniteExecution = true