无法在SpriteKit中过滤纹理图集中的纹理

时间:2014-10-06 05:02:49

标签: sprite-kit sktexture sktextureatlas

我有一个非常讨厌的问题......

我有一个基于像素的艺术游戏,所以使用的纹理是8x8,然后扩展到128x128或任何需要的。

要做到这一点,我需要做的就是说texture.filteringMode = SKTextureFilteringNearest

现在几乎所有东西都适用 - 除了纹理地图集。从纹理图集中拉出纹理会导致纹理拒绝切换过滤模式。有一点需要注意的是,它似乎是在设置纹理图集的标准过程中起作用,但是当我的纹理图集是一个单例时,它不起作用。

现在通常,我只是觉得我设置错了,但我认为这个问题出现在SpriteKit上。这就是原因:

1)这个错误直到最近才发生,我没有改变任何事情

2)该错误仅发生在iOS 7中 - 而不是7.1或8 +

3)问题不在于过滤模式是错误的 - 过滤模式设置为0,这是最接近的(我测试过,每帧记录,模式是正确的 - 但视觉上是不正确的)

所以它是一个渲染错误。但这没有任何意义,特别是当它似乎有点工作时。其他人有任何意见吗?我很感激,我也会尝试更多的东西。谢谢!

注意 - 我想强调的是,代码as-is在ios7.1 +中工作正常,所以代码以某种形式工作......但它也不是7.1独特的功能,因为它对我有用在某一点上。

1 个答案:

答案 0 :(得分:0)

天哪,我已经解决了,抱歉,如果我浪费了任何人的时间。

但这确实是我见过的最愚蠢的事情。我修好了它。但是如何修复它。

我替换了代码:

self.texture.filteringMode = SKTextureFilteringNearest;

self.texture.filteringMode = SKTextureFilteringLinear;
self.texture.filteringMode = SKTextureFilteringNearest;

新问题。为什么世界会 EVER 修复某些东西?我甚至会认真地尝试,这很痛苦。如果这是我要处理的那种恶作剧,我认为我不能成为程序员。

预先为任何,嗯......口语提供道歉。这里的对话应该是我收集的单调和干燥。

编辑:好的,我已经平静了一点 - 解决方案是,在初始化后的某个地方,在纹理处尖叫以将纹理模式设置为第一个线性然后最近。我正在努力弄清楚到底需要做什么(现在,我把代码塞进我的更新语句中,所以它不断运行,但是当我确切地知道你需要在代码中指定的时候我会更新它正确的过滤器。