在SpriteKit游戏中图像边缘模糊。

3
我即将完成我的第一个SpriteKit游戏,其中困扰我很多的是应用程序中图像的质量问题。如下图所示,您可以看到标签文本与我的标志边缘之间的差异。标志边缘明显模糊了。我在Photoshop中创建了这些图像,它们都是PNG格式。我尝试保存时使用或不使用压缩,但没有改变。我希望能够拥有清晰的边缘以使它们看起来更好。我该怎么办?我正在使用Swift语言,并且在某个地方读到以下定义图像的方式可以使它看起来更好,但在我的应用程序中没有任何区别。
let logoTexture = SKTexture(imageNamed: "img/logo.png")
logo = SKSpriteNode(texture: logoTexture, size: logoTexture.size())

使用的图像尺寸是多少?Logo节点的大小是多少?您是否使用适当的资源(例如2x、3x)?此外,是否对Logo节点应用了任何缩放? - Whirlwind
这个logo的大小是300x150,但我在游戏中有不同大小的图像也有相同的问题。我实际上在我的帖子底部分享了logo节点的大小,即logoTexture.size()。2x、3x用于图标,我的问题主要是游戏内的logo以及它的外观。不,我没有对logo节点应用任何程序化缩放。 - johncoffey
我注意到你提到了如何创建标志节点,但我对像素中图像的实际大小以及创建节点时节点的大小(以点为单位)感兴趣,从那段代码中无法看出节点的实际大小(以点为单位)。 ;)这就是为什么我问的原因...正如我所说,我可以产生良好的结果,没有像素化,所以只需用适当的图片更换您当前使用的图片即可。 - Whirlwind
1个回答

3
如果我使用300x150像素的logo.png,也可以得到相同的结果。因此,你需要使用适当的资源,即@2x(如果支持iPhone 6+,还需使用@3x)。当你使用这种命名约定时,iOS会为你选择正确的资源。这适用于@1x和@2x,对于@3x,有一个已知的bug(如果使用图集)。我不确定它是否已经修复。
你应该制作一个大小为600x300像素的图像,并将其命名为logo@2x.png。请注意,如果你只是在图像编辑器中将图像缩放,你将得到相同的结果,因为当缩放位图时,总会出现一些伪影。如果你有标志图像的矢量文件,则可以无损缩放它。如果没有,则必须制作新的高分辨率标志图像。
在进行这些更改后,请重置模拟器的内容和设置,然后再次运行应用程序,这样就应该可以正常工作了。

非常感谢您的回复,但是您是在谈论应用程序中的图标还是游戏本身使用的所有图像? - johncoffey
如果你支持iPhone 4s、5、5s、6和iPad retina等设备,你应该使用2x的素材。是的,我在说你使用的所有图片都要这样做。您可以阅读此链接获取更多信息。https://dev59.com/V2rXa4cB1Zd3GeqPCcGd#13346381 - Whirlwind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接