在gamescene.swift中的背景图像

时间:2016-12-10 16:55:34

标签: swift sprite-kit background-image

为了让图像(已经在assets.xcassets中)显示为GameScene.swift的背景,我需要编码什么?

2 个答案:

答案 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}}的孩子,因为它更易于管理。