繁体   English   中英

Swift - 将背景图像添加到Spritekit场景

[英]Swift - Add a background image to a Spritekit scene

这是我的代码,我没有使用资产目录作为我的图像InterfaceBakground.jepg。 相反,我只是将这个2048x1535图像拖到项目中。 但图像看起来并不正确。 我希望图像显示为背景图像,填满整个屏幕。

import SpriteKit
import GameplayKit
class GameScene: SKScene {

    var background = SKSpriteNode(imageNamed: "InterfaceBakground.jpeg")


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

        self.addChild(background)
    }

    override func update(_ currentTime: TimeInterval) {
        // Called before each frame is rendered
    }
}

我在网上看到这个给我带来了一些灵感:

但是,如果您使用的图像与屏幕大小完全相同,则可能无法显示在您期望的位置。 这是因为默认情况下addChild会在位置0,0(左下角)添加新的精灵。 如果您想使用专门用于屏幕的图像,则必须更改其位置。

我的问题是,如何改变位置,以适应不同尺寸显示器的设备? 提前致谢。

试试这段代码:

override func didMove(to view: SKView) {
    background.position = CGPoint(x: 0, y: 0)
    background.size.width = self.size.width
    background.size.height = self.size.height
    background.anchorPoint = CGPoint(x: 0.5,y: 0.5)

    self.addChild(background)
}

AnchorPoint(0.5,0.5)将图像置于其中心位置。

我不完全确定,但我认为你可以像这样设置spriteNode的高度和宽度。 我也改变了anchorPoint以确保:

override func didMove(to view: SKView) {
        background.size.width = self.size.width
        background.size.height = self.size.height
        background.anchorPoint = CGPoint(x: 0, y: 0)


        self.addChild(background)
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM