在 SpriteKit 游戏中图像边缘模糊

Having blur at the edges of the image in SpriteKit game

我的第一个 SpriteKit 游戏快完成了。最让我困扰的事情之一是我的应用程序中的图像质量。

您可以在下面看到标签文本和我的徽标边缘之间的区别。徽标在边缘点处明显模糊。我在 Photoshop 中创建了图像,它们都是 PNG 格式。我在压缩或不压缩的情况下保存了它们,但没有改变。我想要锋利的边缘,使它们看起来不错。我该怎么办?

我正在使用 Swift 作为语言,我在某处读到以下定义图像的方式使其看起来更好,但对我的应用程序没有任何影响。

let logoTexture = SKTexture(imageNamed: "img/logo.png")
logo = SKSpriteNode(texture: logoTexture, size: logoTexture.size())

如果我使用 300x150px logo.png,我可以产生相同的结果。因此,您应该做的是使用适当的资产,即 @2x(如果您支持 iPhone 6+,则为 @3x)。当您使用此命名约定时,iOS 将为您选择合适的资产。这适用于@1x 和@2x,对于@3x 有一个已知的bug(如果使用地图集)。我不确定它是否已修复。

您应该制作一张尺寸为 600x300px 的图片并将其命名为 logo@2x.png。请注意,如果您只是在图像编辑器中放大图像,您将得到相同的结果,因为在缩放位图时总会出现一些伪像。充其量,如果您有徽标图像的矢量文件,则可以在不降低质量的情况下将其放大。如果没有,您必须制作高分辨率的新徽标图像。

进行这些更改后,重置模拟器的内容和设置,然后再次 运行 应用程序,它应该可以工作。