【发布时间】:2014-07-12 17:09:54
【问题描述】:
编辑 3:嗯,我已经解决了这个问题。似乎在 iOS 8 中,您现在可以从 scene.sks 文件中加载场景。所以在这种情况下,游戏正在加载一个分辨率为 1024x768 的 .sks 文件。这就是图像无法正确显示的原因。将 ViewController 更改为在 iOS 8 之前的工作方式(这里解释为:Swift and Spritekit won't run on device running iOS 7.1)似乎解决了这个问题。感谢所有试图帮助我的人。 :D
我正在使用最新的 Xcode 测试版在 SpriteKit 和 Swift 中创建一个游戏(好吧,我正在移植一个我已经用 Obj-C 制作的游戏)。我有一个问题,SpriteKit 似乎没有正确渲染我的精灵,渲染它们的尺寸比它应该的尺寸小。如果我提供原生 iPhone 分辨率的背景,请使用以下代码添加它:
let background = SKSpriteNode(imageNamed: backgroundName)
background.position = CGPoint(x: self.size.width / 2, y: self.size.height / 2)
self.addChild(background)
产生这个:
精灵图像比它应该的要小,因为图像是 640x1136。我错过了什么吗?
编辑:嗯,看起来图像被渲染了大约 50%。使它们大 50% 可以正确显示它们,但它们的尺寸错误(大 50%)...
编辑 2:嗯,这是我使用的图像分辨率正确的证据:
【问题讨论】:
-
如果图像在视网膜屏幕上是一半大小,那么您可能没有将它们标记为 2x,但如果您的图像只有 640 x 1136,那么它将是视网膜屏幕大小的一半因为它有两倍的像素。确保区分点和像素。
-
@CHBuckingham 图像已正确放置在 xcassets 文件夹中。另外,点是非视网膜分辨率的,不是吗?
-
我评论得太快了,并假设您在 iPad 模拟器分辨率上运行。一个 640 x 1136 像素的图像应该适合 iPhone Retina 屏幕显示。所以你的源图像要么不是那个密度或分辨率,要么你的场景有不同的大小或比例。
-
@CHBuckingham 如何检查或更改场景大小或比例?
-
场景应该有 xScale 和 yScale 的属性,以及 self.size.width 和 self.size.height。
标签: swift sprite-kit xcode6 skspritenode