【问题标题】:SKSpriteNode spriteNodeWithImageNamed rendering at wrong resolutionSKSpriteNode spriteNodeWithImageNamed 以错误的分辨率渲染
【发布时间】:2015-01-04 00:01:34
【问题描述】:

我刚开始使用 SpriteKit,不幸的是已经被第一次尝试卡住了。当使用任何使用该名称的方法创建精灵时,它们不会以正确的分辨率渲染,但大约会小 1.3 倍。我正在加载应该完全填满 iphone 5 屏幕的图像:

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"1"];

sprite.position = CGPointMake(CGRectGetMidX(self.frame),
                             CGRectGetMidY(self.frame));
[self addChild:sprite];

奇怪的是,CGSize 属性是正确的。我的图像文件名为 1@2x.png,我尝试了不同的名称但没有成功。我只是在开始使用纹理图集时才注意到,问题是一样的。

【问题讨论】:

  • 检查scene.scaleMode
  • scaleMode 为我指明了正确的方向,因为我使用的是 Xcode 模板,我的场景是从 sks 文件加载的。当我改变它的尺寸时,外观会改变。如何使用设备的原始分辨率设置我的场景?

标签: ios sprite-kit skspritenode


【解决方案1】:

嗯,目前该图像不一定会显示在整个屏幕上。您已使用CGPointMake 将其定位在中心,但您必须使用[sprite setScale:] 才能实际放大/缩小它。通过在图像名称末尾包含@2x,您的意思是如果有视网膜显示器,您想用质量更好的图像代替标准图像。这并不意味着在视觉上大小会有所不同(因为视网膜将使用 2x 的,而普通显示器将使用 1x 的)。请记住,视网膜在较小的区域内具有物理上更多的像素。

如果你想让图片占据整个屏幕,你可以尝试将精灵的大小设置为场景的大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    相关资源
    最近更新 更多