ios - 你如何使用 SKTextureFilteringNearest 与 SKTextureAtlas

标签 ios objective-c sprite-kit

我似乎在使用 SKTextureAtlas 和纹理的最近邻过滤时遇到问题。当我在没有 SKTextureAtlas 的情况下使用最近邻过滤时它工作正常,但是当我使用 SKTextureAtlas 时一切都变成了线性过滤。

没有 SKTextureAtlas 的代码和结果:

SKTexture* texture = [SKTexture textureWithImageNamed:@"grass"];
texture.filteringMode = SKTextureFilteringNearest;
SKSpriteNode* node = [SKSpriteNode spriteNodeWithTexture:texture size:CGSizeMake(512,512)];

应生成最近邻过滤并执行 enter image description here

使用 SKTextureAtlas 的代码和结果:

SKTextureAtlas* atlas = [SKTextureAtlas atlasNamed:@"myAtlas"];
SKTexture* texture = [atlas textureNamed:@"grass"];
texture.filteringMode = SKTextureFilteringNearest;
SKSpriteNode* node = [SKSpriteNode spriteNodeWithTexture:texture size:CGSizeMake(512,512)];

应该生成最近邻过滤,但不会 enter image description here

有什么建议吗?

最佳答案

我一直在为完全相同的问题而苦苦挣扎。

似乎当您为来自 SKTextureAtlas 的 SKTexture 设置过滤模式时,它会为来自该图集的所有内容设置过滤模式。

我最终通过制作两个 SKTextureAtlas(AtlasLinear 和 AtlasNearest)解决了这个问题。一个用于我的普通作品,另一个用于像素艺术。这很有魅力。

然而,对于非常小的 map 集,我有时会遇到奇怪的小像素错误。如果这为您弹出,它实际上有助于将一些大的白色 block png 添加到您的像素艺术图集中。

祝你好运。

关于ios - 你如何使用 SKTextureFilteringNearest 与 SKTextureAtlas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19992048/

相关文章:

ios - 在 Swift 中持续更新图像

ios - 当进入结果 View 并返回时,带有 UISearchController 的 UITableView 进入导航栏下方

iphone - ios asihttprequest 发布字符串

sprite-kit - SKNode 跟随路径总是相对的

ios - 让玩家双跳 Sprite Kit Swift

ios - 在 iOS 8 的 SpriteKit 中使用 xScale 翻转 Sprite 不会翻转 SKPhysicsBody

ios - itunes connect/Testflight 应用程序总是显示旧版本(即使我们将新版本上传到 testflight)

ios - 如何从可用字符串中选择随机字符串

ios - 访问属性时,点语法和 "->"有什么不同

ios - SKTileMapNode:检测触摸的 Tile?