【发布时间】:2013-11-15 01:48:43
【问题描述】:
我似乎在使用 SKTextureAtlas 和最近邻过滤纹理时遇到问题。当我使用没有 SKTextureAtlas 的最近邻过滤时,它工作正常,但是当我使用 SKTextureAtlas 时,一切都变成了线性过滤。
没有 SKTextureAtlas 的代码和结果:
SKTexture* texture = [SKTexture textureWithImageNamed:@"grass"];
texture.filteringMode = SKTextureFilteringNearest;
SKSpriteNode* node = [SKSpriteNode spriteNodeWithTexture:texture size:CGSizeMake(512,512)];
应该产生最近邻过滤和做
使用 SKTextureAtlas 的代码和结果:
SKTextureAtlas* atlas = [SKTextureAtlas atlasNamed:@"myAtlas"];
SKTexture* texture = [atlas textureNamed:@"grass"];
texture.filteringMode = SKTextureFilteringNearest;
SKSpriteNode* node = [SKSpriteNode spriteNodeWithTexture:texture size:CGSizeMake(512,512)];
应该产生最近邻过滤&不
有什么建议吗?
【问题讨论】:
-
试试 spriteNodeWithTexture: 不指定大小,有区别吗?对我来说,最近的带有 atlas 纹理的过滤器有效,但我还没有尝试在 init 上更改 sprite rect。通过 xScale/yScale 创建精灵后,您仍然可以缩放精灵。
-
好吧,我试过了,我得到了同样的结果:(
-
我无法按照您的方式工作,但不是在 init 中设置大小,之后我将大小设置为
[node setSize:];并且它有效 -
我正在使用 64x64 纹理,并且我有一个名为 GrassNode 的对象,它继承自 SKSpriteNode,我最初的大小和比例代码失败了。现在,当我在场景中声明 GrassNode 并使用 [grass setSize:CGSizeMake(1,1)];它仍然失败。你能告诉我你的布局,也许我能弄清楚。
-
如果发现我的问题没有真正的解决方案,我可能会升级我的纹理,以便它们在更高的分辨率下保持清晰。
标签: ios objective-c sprite-kit