这是我的代码,我没有为我的图像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(左下角)的精灵。如果你想 要使用专门为您的屏幕调整大小的图像,您必须这样做 改变立场。
我的问题是,如何改变位置,以适应不同尺寸显示器的设备?提前谢谢。
答案 0 :(得分:2)
试试这段代码:
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),将图像置于其中心位置。
答案 1 :(得分:1)
我不完全确定,但我认为您可以像这样设置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)
}