SpriteKit - 背景图像被拉伸得非常

时间:2016-10-14 09:00:29

标签: ios swift xcode sprite-kit

我将我的spriteKit游戏模式设置为:

scene.scaleMode = .aspectFill

我设置了背景图片。

sky = SKSpriteNode(imageNamed: "Sky")
sky.position = CGPoint(x: 0, y: 0)
sky.size.width = self.size.width
sky.size.height = self.size.height
sky.anchorPoint = CGPoint(x: 0.5, y: 0.5)
sky.zPosition = 1
self.addChild(sky)

图像尺寸为2732x2048。它在4.7英寸的iPhone上看起来很糟糕。
整个事情已经完成了拉伸。有没有办法,裁剪图像但不拉伸它以适应iPhone(图像的相同方面的收音机)。 / p>

我尝试过其他比例模式,它们不起作用。
有人可以告诉我现在采取的正确行动是什么?

如果我提供iPhone图片怎么办?我如何区别于代码,比如指定iPhone应该使用哪些艺术品,以及iPad应该使用哪些艺术品。

1 个答案:

答案 0 :(得分:2)

删除设置天空大小的行,您应该完成以下任务:

不要将大小设置为框架。相反,将其设置为图像的大小,因此它会被裁剪而不是缩放:

sky.size = sky.texture.size

此代码将替代您设置宽度和高度的2条线。

这仅适用于图像大小与其默认大小(您输入的大小)正确匹配的情况

或者,你可以让你的应用程序如此通用。看看这个:iOS Universal Device App with SpriteKit, how to scale nodes for all views?。然后,您只需将背景设置为1024x1024(或任何足够大的尺寸以适合所有设备尺寸的宽高比)。这将在不同尺寸的设备上裁剪部分内容,但不同设备的宽高比不会发生变化或缩放。