![](/img/trans.png)
[英]Background music pauses after going to a new scene Swift 3 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.