簡體   English   中英

SKSpriteNode的精靈僅在iPhone 7 Plus真機上模糊

[英]Sprites of SKSpriteNode are blurred only on the iPhone 7 Plus real machine

我正在使用SpriteKit和最新的Xcode制作游戲應用程序。
我想以像素完美顯示單色精靈。
我嘗試了以下代碼。

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)

在大多數情況下,它是理想的顯示。 (具體來說,它是所有iOS模擬器,iPhone 6s的真機,iPod touch,iPad。)
但是,在iPhone 7 Plus真機中,它像下面的圖像一樣模糊。

在此輸入圖像描述

據我所知,無法顯示像素完美,因為在iPhone Plus系列中,1242 x 2208像素的圖像被下采樣到1080 x 1920像素。
但截圖應該是像素完美的,因為它在下采樣之前得到1242 x 2208像素。
我無法嘗試,因為我沒有它,但我認為它將與iPhone 6 Plus真機和iPhone 6s Plus真機相同。

有辦法解決這個問題嗎?

我英文不太好。
謝謝。


我嘗試了@ Knight0fDragon的想法。
我在20種感官中安排了高度為0.666667的精靈。
我嘗試了414 x 736和360 x 640的SKView尺寸。
結果,雖然它不是像素完美,但它變得更好。
但是,截圖的大小仍然是1242 x 2208像素。

https://i.stack.imgur.com/Cadgp.png

這是一個像素完美的1080乘1920圖像,適合渴望看到他們是否可以解決這個問題的人。

在此輸入圖像描述

1242的最近鄰:

在此輸入圖像描述

最近鄰居回到1080:

在此輸入圖像描述

我會建議使用SKShapeNode它有一個.isAntialiased場(此設置為false)。

然后,您可以根據數學使用形狀節點在任意位置繪制線條,它應該是像素完美且清晰的。

如果你必須將它們作為精靈,那么你可以將ShapeNode轉換為紋理,並希望它不會失去任何質量:

這是我做的一個示例,它將labelNode轉換為紋理: https ://gist.github.com/anonymous/4ea86cf6a32bdd79376cc2a4f4d5a151

我能想到的另一個想法是使用.usesMipMaps作為紋理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM