为了让图像(已经在assets.xcassets中)显示为GameScene.swift的背景,我需要编码什么?
答案 0 :(得分:2)
首先,您可以使用scaleMode .resizeFill
调用场景,修改SKScene
的实际尺寸,使其与SKView
完全匹配:
scene.scaleMode = .resizeFill
.resizeFill - 场景未缩放。它只是调整大小,以适应视图。由于场景未缩放,因此图像将保持原始大小和宽高比。内容将全部保持相对于场景原点(左下角)。
默认情况下,场景的原点位于视图的左下角。因此,一个场景初始化,高度为1024,宽度为768,左下角有原点(0,0),右上角有(1024,768)坐标。 frame属性保存(0,0) - (1024,768)。锚点的默认值为CGPointZero
(所以你不需要更改它),它将它放在左下角
最后,您可以使用以下代码添加背景图片(称为示例bg.jpg):
// Set background
let txt = SKTexture(imageNamed: "bg.jpg")
let backgroundNode = SKSpriteNode(texture: txt, size:size)
self.addChild(backgroundNode)
backgroundNode.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
答案 1 :(得分:1)
虽然这可能不是最好的方式,但这是我一直以来所做的,而且有效。
假设您的图像与场景完全相同,则可以执行以下操作:
bg
Alernatively,只需在sks文件中执行此操作。这更容易。
之后,将所有游戏精灵添加为self
而非{{1}}的孩子,因为它更易于管理。