gpt4 book ai didi

ios - SKSpriteNode的 Sprite 只有在iPhone 7 Plus真机上模糊

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:28:44 25 4
gpt4 key购买 nike

我正在使用 SpriteKit 和最新的 Xcode 制作游戏应用程序。
我想以像素完美显示单色 Sprite 。
我尝试了以下代码。

let sprite = SKSpriteNode(color: SKColor.gray, size: CGSize(width: 16, height: 16))
sprite.anchorPoint = CGPoint(x: 0, y: 0)
sprite.position = CGPoint(x: 100, y: 100)
sprite.texture?.filteringMode = .nearest
addChild(sprite)

在大多数情况下,它的显示效果非常理想。(具体为iPhone 6s、iPod touch、iPad的所有iOS模拟器、真机。)
而在iPhone 7 Plus真机中,则像下图一样模糊。

enter image description here

我知道不可能完美显示像素,因为 1242 x 2208 像素的图像在 iPhone Plus 系列中被下采样到 1080 x 1920 像素。
但屏幕截图应该是像素完美的,因为它在下采样之前得到 1242 x 2208 像素。
我没有试过,但我想在iPhone 6 Plus真机和iPhone 6s Plus真机上应该是一样的结果。

有办法解决吗?

我的英语不好。
谢谢。


我尝试了@Knight0fDragon 的想法。
我在 20 种感官中排列了高度为 0.666667 的 Sprite 。
我尝试了 414 x 736 和 360 x 640 的 SKView 尺寸。
结果,虽然它不是像素完美的,但它变得更好了。
但是,屏幕截图的大小仍然是 1242 x 2208 像素。

/image/Cadgp.png

最佳答案

我建议使用 SKShapeNode,它有一个 .isAntialiased 字段(将其设置为 false)。

然后您可以使用形状节点根据数学在任何您想要的地方绘制线条,它应该是像素完美且清晰的。

如果您必须将它们作为 Sprite ,那么您可以将 ShapeNode 转换为纹理,并希望它不会失去任何质量:

这是我制作的将 labelNode 转换为纹理的示例: https://gist.github.com/anonymous/4ea86cf6a32bdd79376cc2a4f4d5a151

我唯一能想到的其他想法是使用 .usesMipMaps 作为您的纹理。

关于ios - SKSpriteNode的 Sprite 只有在iPhone 7 Plus真机上模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com