使用通用图像资源(SpriteKit 游戏)时背景不适合屏幕

Posted

技术标签:

【中文标题】使用通用图像资源(SpriteKit 游戏)时背景不适合屏幕【英文标题】:Background not fit to screen when use Universal image asset (SpriteKit Game) 【发布时间】:2014-12-06 23:33:34 【问题描述】:

我正在使用 SpriteKit 快速制作游戏场景。我使用 Universal images.xcassets 作为背景图像。我的图像尺寸是 2208x1536(px) 放在 iPhone 3x 资产上。

在 iPhone 上看起来不错,但在 iPad 上我的背景不适合屏幕。

在 iPhone 上看起来不错。 http://i.stack.imgur.com/RJzNu.jpg

但在 iPad 上背景不适合屏幕? i.stack.imgur.com/bbvSx.png(请加 http://)

这是我当前的图片资源。 i.stack.imgur.com/6CXUU.png(请添加http://)

然后,我尝试使用特定于设备的 images.xcassets 然后将相同的图像放在 iPad 2x 上 i.stack.imgur.com/n3jXZ.png(请添加http://)

现在,背景已经适合 iPad 上的屏幕,但是任何节点协调和字体大小都不正确。 i.stack.imgur.com/ylZ4V.jpg(请加 http://)

这里是我项目的一些信息。

// scene size & scale mode
scene.size = skView.frame.size
scene.scaleMode = .AspectFill

// background color
self.backgroundColor = SKColor.brownColor()

// add background image
let bg = SKSpriteNode(imageNamed:"bg")
bg.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
self.addChild(bg)

还有我的作品分辨率 i.stack.imgur.com/j9AAz.jpg(请加 http://)

如何解决这个问题?


编辑:

我正在尝试在我的项目中使用像素空间,现在这个问题已经解决了。

在任何设备上看起来都很好且协调正确。 http://i.stack.imgur.com/L1KoI.jpg

谢谢。

【问题讨论】:

【参考方案1】:

场景的 scaleMode 似乎更像是一个问题,而不是资产问题。

Understanding SKScene scaleMode

Scene Scaling Modes

编辑: 尝试使用通用资产 @2x - @3x 并使用边界而不是框架 使用此参考图像 。这是 iphone 6+ 和 ipad Air 中的结果

【讨论】:

我正在尝试在 2x 上使用相同的图像参考 3x。它适合 iPad 上的屏幕,但在 iPhone 2x 上显示有缩放背景。看我的截图i.stack.imgur.com/N33jt.jpg谢谢 一项资产 2x 用于 iPad 和其他需要的资产。 3x 仅适用于 iPhone 6+。

以上是关于使用通用图像资源(SpriteKit 游戏)时背景不适合屏幕的主要内容,如果未能解决你的问题,请参考以下文章

SpriteKit 中的无限滚动背景

SpriteKit .sks文件在分配纹理时崩溃Xcode 10

使用 SpriteKit 的自定义框架 - 未加载资产文件

SpriteKit 布局问题

背景图像有多大?

SpriteKit 中的循环背景音乐