首页 > 解决方案 > 在 Playgrounds 上使用 SpriteKit 声明背景后出现 Swift 错误

问题描述

我对学习 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

标签: swiftsprite-kitswift-playground

解决方案


尝试这个:

      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

推荐阅读