精灵套件 - 使用textureFromNode时Retina上的低分辨率纹理

时间:2013-12-30 10:17:18

标签: ios sprite-kit

对于我的游戏,我试图从其他两个纹理创建自定义纹理。这是为了在我的精灵中允许各种各样的颜色等。

为此,我通过将两个纹理一起添加,然后使用

将其应用于新的SKTexture来创建精灵。
SKTexture *texture = [self.view textureFromNode:newSprite];

总的来说效果很好,我得到了一个很好的自定义纹理。除了在Retina设备上尝试我的游戏时,屏幕上的纹理尺寸正确,但分辨率明显较低。

纹理都在那里并正确命名,因此我不相信这是一个问题。

有没有人遇到过这个,或者知道如何创建合适的@ 2x纹理?

2 个答案:

答案 0 :(得分:1)

我终于(不小心)想出了如何解决这个问题。必须将要创建纹理的节点添加到场景中。否则,您将获得纹理的非视网膜尺寸。

这并不理想,因为创建纹理而不必将它们添加到屏幕上会很好。

答案 1 :(得分:0)

我发现了另一种提高ShapeNodes创建的纹理保真度的方法,与这个问题并不完全相关 - 但是有用的英特尔。

以x2的大小和宽度创建形状。 以相同的超大比例创建所有字体和其他形状。 确保您的定位相对于此总体尺寸(例如,不要使用绝对尺寸,使用容器的相对尺寸。)

当您将纹理创建为精灵时,它会很大 - 但随后应用

sprite.scale = 0.5; // if you were using 2x

我发现这使它看起来分辨率更高,没有颗粒感,没有字体,尖角的模糊性。

我还使用了tex.filteringMode = SKTextureFilteringNearest;

因此:它不必添加到场景中然后被删除。