问题描述
我对学习 Swift 语言还比较陌生,所以我不知道自己缺少什么,但我似乎不明白为什么这行不通。我的目标是使用 SpriteKit 为我的场景添加背景,但是每当我尝试添加背景时,playgrounds 都会花一秒钟,然后显示一个错误:
运行此游乐场时出现问题。
我已经使用 SpriteKit 设置了一个场景,所以当这段代码不存在时,我确实会得到一个黑屏,但是由于某种原因,当这段代码出现时,一切似乎都失败了:
let bg = SKSpriteNode(texture: SKTexture(image: #imageLiteral(resourceName: "IMG_0483.jpg")))
bg.setScale(2.0)
bg.zPosition = -10
bg.position = CGPoint(x: frame.midX,y: frame.midY)
addChild(bg)
这里是脚本的大上下文:
import SpriteKit
public class GameScene: SKScene {
var player: SKSpriteNode!
public override func didMove(to view: SKView) {
// Backround
let bg = SKSpriteNode(texture: SKTexture(image: #imageLiteral(resourceName: "IMG_0483.jpg")))
bg.setScale(2.0)
bg.zPosition = -10
bg.position = CGPoint(x: frame.midX,y: frame.midY)
addChild(bg)
}
}
这是我调用它的主要位置
import UIKit
import SpriteKit
import PlaygroundSupport
let skView = SKView(frame: .zero)
let gameScene = GameScene(size: UIScreen.main.bounds.size)
gameScene.scaleMode = .aspectFill
skView.presentScene(gameScene)
PlaygroundPage.current.liveView = skView
PlaygroundPage.current.wantsFullScreenLiveView = true
解决方法
试试这个:
let bg = SKSpriteNode(imageNamed: "image.jpg")
bg.setScale(2.0)
bg.zPosition = -10
bg.position = CGPoint(x: frame.midX,y: frame.midY)
addChild(bg)
显示场景的位置:
let skView = SKView(frame: UIScreen.main.bounds)
let gameScene = GameScene(fileNamed: "GameScene")
gameScene?.scaleMode = .aspectFill
skView.presentScene(gameScene)
PlaygroundPage.current.liveView = skView