2017-03-13 5 views
2

SpriteKitプロジェクトのテンプレートコードをプレイグラウンドにコピーしようとしましたが、シーンを提示すると灰色の画面が表示されます。 SKSceneを作成する必要がありますか?その場合は、私が使用しているシーンクラスにどのように割り当てるのですか?Swift Playgroundsにテクスチャを持つSKNodeを使ってSKSceneを設定するにはどうすればいいですか?

@objc func goToGameScene(){ 

    print("GameView Loaded") 

sceneView = SKView(frame: CGRect(x: 0, y: 0, width: 666, height: 500)) 



sceneView.backgroundColor = UIColor.black 

PlaygroundPage.current.liveView = sceneView 

if let view = self.sceneView as SKView? { 
    // Load the SKScene from 'GameScene.sks' 
    if let scene = SKScene(fileNamed: "GameScene") { 
     // Set the scale mode to scale to fit the window 
     scene.scaleMode = .aspectFill 

     // Present the scene 
     view.presentScene(scene) 
    } 

    view.ignoresSiblingOrder = true 


} 

そして、これはGameScene.swiftのファイル名を持っている私のSKSceneクラス、次のとおりです。

次は、シーンを作成し、提示する私のコードです。

import Foundation 
import SpriteKit 
import GameplayKit 

class GameScene: SKScene, SKPhysicsContactDelegate { 
var bg = SKSpriteNode() 
func didBegin(_ contact: SKPhysicsContact) { 
} 
override func didMove(to view: SKView) { 
    self.physicsWorld.contactDelegate = self 
    let bgTexture = SKTexture(image: UIImage(named: "MainScreenBackground.png")!) 
    let moveBGAnimation = SKAction.move(by: CGVector(dx:-bgTexture.size().width, dy:0), duration: 11) 
    let shiftBackground = SKAction.move(by: CGVector(dx: bgTexture.size().width, dy:0), duration: 0) 
    let repeatAnimationBg = SKAction.repeatForever(SKAction.sequence([moveBGAnimation, shiftBackground])) 
    var q = 0 
    while(q < 3){ 
     bg = SKSpriteNode(texture: bgTexture) 
     bg.position = CGPoint(x: bgTexture.size().width * CGFloat(q), y: self.frame.midY) 
     bg.size.height = self.frame.height 
     bg.run(repeatAnimationBg) 
     self.addChild(bg) 
     q+=1 
     bg.zPosition = -1 
    } 
} 

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
} 
override func update(_ currentTime: TimeInterval) { 
} 
} 

答えて

1

あなたはドラッグして、あなたAssets.xcassetsフォルダにあなたのMainScreenBackground.pngイメージを落としていると仮定すると、あなたはSKSpriteNodeとして、あなたのシーンに画像を追加するには、以下のコードを使用することができます。

override func didMove(to view: SKView) { 
    self.physicsWorld.contactDelegate = self 
    let bgTexture = SKSpriteNode(imageNamed: "MainScreenBackground") 
    self.addChild(bgTexture) 
    ... 
関連する問題