SpriteKit 游戏中图像边缘模糊
Posted
技术标签:
【中文标题】SpriteKit 游戏中图像边缘模糊【英文标题】:Having blur at the edges of the image in SpriteKit game 【发布时间】:2015-06-01 17:13:24 【问题描述】:我的第一个 SpriteKit 游戏几乎完成了。困扰我很多的事情之一是我的应用程序中的图像质量。
您可以在下面看到标签文本和我的徽标边缘之间的区别。标志在边缘点明显模糊。我在 Photoshop 中创建了图像,它们都是 PNG 格式。我在压缩或不压缩的情况下保存了它们,但没有变化。我想有锋利的边缘,使它们看起来不错。我该怎么办?
我使用 Swift 作为语言,我在某处读到以下定义图像的方式使它看起来更好,但对我的应用没有任何影响。
let logoTexture = SKTexture(imageNamed: "img/logo.png")
logo = SKSpriteNode(texture: logoTexture, size: logoTexture.size())
【问题讨论】:
使用过的图片尺寸是多少?徽标节点的大小是多少?您是否使用适当的资产(例如 2x、3x )?徽标节点是否也有任何缩放? 这个标志尺寸是 300x150 但我在游戏中有不同尺寸的图像也有同样的问题。实际上,我在帖子底部共享了徽标节点的大小,即 logoTexture.size()。 2x,3x是图标,我的问题主要是游戏里面的logo和外观。不,我没有对徽标节点应用任何程序化比例。 我注意到您已经指出了如何创建徽标节点,但我对图像的实际大小(以像素为单位)以及创建时节点的大小(以磅为单位)感兴趣,并且从该代码中看不到节点的实际大小(以点为单位)。 ;) 这就是我问的原因......正如我所说,我可以产生良好的效果,没有像素化,所以只需将您当前使用的图片更改为适当的图片。 【参考方案1】:如果我使用 300x150px logo.png,我可以产生相同的结果。所以,你应该做的是使用适当的资产,即@2x(如果你支持iPhone 6+,则为@3x)。当您使用此命名约定时,ios 将为您选择正确的资产。这适用于@1x 和@2x,对于@3x,有一个已知的bug(如果使用地图集)。我不确定它是否已经修复。
您应该制作一个大小为 600x300 像素的图像并将其命名为 logo@2x.png。请注意,如果您只是在图像编辑器中放大图像,您将获得相同的结果,因为在缩放位图时总会出现一些伪影。最好的情况是,如果您有徽标图像的矢量文件,您可以在不损失质量的情况下放大它。如果没有,您必须以高分辨率制作新的徽标图像。
进行这些更改后,重置模拟器的内容和设置,然后再次运行应用程序,它应该可以工作了。
【讨论】:
非常感谢您的回复,但您是在谈论仅应用程序的图标还是在谈论游戏本身使用的所有图像? @johncoffey 如果你支持 iPhone 4s、5、5s、6、iPad Retina 之类的东西,你应该使用 2x assets。是的,我说的是你使用的所有图像。您可以阅读此内容以获取更多信息。 ***.com/a/13346381/3402095以上是关于SpriteKit 游戏中图像边缘模糊的主要内容,如果未能解决你的问题,请参考以下文章