0

我有一个非常烦人的问题...

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

为此,我需要做的就是说texture.filteringMode = SKTextureFilteringNearest

现在这几乎适用于所有东西——除了纹理图集。从纹理图集中提取纹理会导致纹理拒绝切换过滤模式。需要注意的一点是,它似乎可以从设置纹理图集的标准过程中工作,但是当我的纹理图集是单例时它不起作用。

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

1)这个bug直到最近才发生,我没有改变任何东西

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

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

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

注意-我想强调的是,代码原样在 ios7.1+ 中工作得很好,所以代码以某种形式工作......但它也不是 7.1 的独特功能,因为它曾一度对我有用。

4

1 回答 1

0

哦,天哪,我已经解决了,对不起,如果我浪费了任何人的时间。

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

我替换了代码:

self.texture.filteringMode = SKTextureFilteringNearest;

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

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

提前为任何,嗯...口语表达道歉。从我收集的信息来看,这里的对话应该是单调而枯燥的。

编辑:好的,我已经冷静了一点——解决方案是,在初始化之后的某个地方,对纹理尖叫以将纹理模式设置为首先是线性的,然后是最近的。我正试图弄清楚需要在哪里完成此操作(现在,我将代码塞进了我的更新语句中,因此它会不断运行,但是当我确切知道您需要在代码中何时指定时,我会更新它正确的过滤器。

于 2014-10-06T05:09:25.510 回答