Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 精灵套件场景的背景图像_Swift_Sprite Kit - Fatal编程技术网

Swift 精灵套件场景的背景图像

Swift 精灵套件场景的背景图像,swift,sprite-kit,Swift,Sprite Kit,我现在正在一个精灵套件场景中工作,我想将背景设置为一个名为“bgimage”的图像。我如何通过GameSecene.swift以编程方式实现这一点 import UIKit import SpriteKit import CoreGraphics class gameScene: SKScene { } 您可以将背景图像声明为SKSpriteNode,将其位置设置为屏幕中间,然后将其添加到场景中 import UIKit import SpriteKit class gameScene:

我现在正在一个精灵套件场景中工作,我想将背景设置为一个名为“bgimage”的图像。我如何通过GameSecene.swift以编程方式实现这一点

import UIKit
import SpriteKit
import CoreGraphics
class gameScene: SKScene {


}

您可以将背景图像声明为
SKSpriteNode
,将其位置设置为屏幕中间,然后将其添加到场景中

import UIKit
import SpriteKit

class gameScene: SKScene {
    var background = SKSpriteNode(imageNamed: "bgimage")

    override func didMoveToView(view: SKView) {
        background.position = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2)
        addChild(background)
    }
}
还要确保您在images.xcsets中有图像

import UIKit
import SpriteKit
import CoreGraphics
class gameScene: SKScene {

var background = SKSpriteNode(imageNamed: "bgimage")

override func didMoveToView(to view: SKView) {
background.zPosition = 1
background.position = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2)

addChild(background)


}
}

Z位置应低于游戏场景中的所有其他节点

全尺寸图像背景

override func didMove(to view: SKView) {

    super.didMove(to:view)

    DispatchQueue.main.async{

        self.background.zPosition = 0
        self.background.position = CGPoint(x: self.size.width / 2, y: self.size.height / 2)
        self.background.size = CGSize(width: self.size.width, height: self.size.height)
        self.addChild(self.background)

    }
}

在类中使用大写名称是一种很好的做法。用
游戏场景
替换
游戏场景
是可取的,但不是必需的。设置其大小以填充场景也会很好。我认为如果使用特定于设备的图像作为背景,而不是通用图像,效果会更好。这样,每个设备都有自己的映像版本,但可能只有我一个人。@CodeComposer是iOS的好主意,但不是OS X。虽然这确实有效,但我注意到它可能会占用大量设备资源,尤其是在旧设备上。Swift 4语法更改
覆盖func didMove(to view:SKView){
另外,谢谢你在这个位置上的提示。