我似乎在使用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)];
应该产生最近的邻居过滤和而不是
有什么建议么?
最佳答案
我一直在为完全相同的问题而苦苦挣扎。
看来,当您为来自SKTextureAtlas的SKTexture设置过滤模式时,它会为来自该图集的所有内容都设置过滤模式。
我最终通过制作两个SKTextureAtlas(AtlasLinear和AtlasNearest)解决了它。一个用于我的普通艺术品,另一个用于Pixelart。这是一种魅力。
但是,对于非常小的 map 集,有时会出现奇怪的小像素错误。如果这为您弹出,则实际上有助于在像素艺术图集中添加一些大的白色png像素。
祝你好运。
关于ios - 如何将SKTextureFilteringNearest与SKTextureAtlas结合使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19992048/