小编Nic*_*tak的帖子

如何在SKTextureAtlas中使用SKTextureFilteringNearest

我似乎遇到了使用SKTextureAtlas和最近邻居过滤纹理的问题.当我使用没有SKTextureAtlas的最近邻居过滤时它工作正常,但是当我使用SKTextureAtlas时,所有内容都只是改为线性过滤.

没有SKTextureAtlas的代码和结果:

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

应该产生最近邻过滤和做 在此输入图像描述

SKTextureAtlas的代码和结果:

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

应该产生最近邻过滤而不是 在此输入图像描述

有什么建议?

objective-c ios sprite-kit

9
推荐指数
1
解决办法
1487
查看次数

如何在Sprite Kit中设置纹理到tile

我正在制作一个精灵套件游戏,显然有一个带有平铺纹理的大型SKSpriteNode比使用多个带有平铺纹理的SKSpriteNode更有效.我的问题是当我尝试使用5x5瓷砖时

SKTexture* tex = [SKTexture textureWithRect:CGRectMake(0,0,5,5) inTexture:[SKTexture textureWithImageNamed:@"tile.png"]];
SKSpriteNode* node = [SKSpriteNode spriteNodeWithTexture:tex size:CGSizeMake(100,100)];
Run Code Online (Sandbox Code Playgroud)

图像的大小适当,但它被夹紧而不是平铺.在openGL术语中,我得到一个GL_CLAMP_TO_EDGE,我想要一个GL_REPEAT.无论如何,我可以在单个SKSpriteNode中实现纹理的平铺效果,而无需创建非常大的图像.

这是我的问题的图像: 在此输入图像描述

objective-c ios sprite-kit

7
推荐指数
1
解决办法
6517
查看次数

标签 统计

ios ×2

objective-c ×2

sprite-kit ×2