我有一个带有一堆图块的图集,我正在尝试使用 SKTexture 和 SKTextureAtlas 将它们加载到内存中,但它不起作用。我使用以下代码加载它们:
NSString *atlasName = [NSString stringWithFormat:@"Tiles"];
SKTextureAtlas *tileAtlas = [SKTextureAtlas atlasNamed:atlasName];
NSInteger numberOfTiles = tileAtlas.textureNames.count;
backgroundTiles = [[NSMutableArray alloc] initWithCapacity:numberOfTiles];
for (int y = 0; y < 5; y++) {
for (int x = 0; x < 9; x++) {
int tileNumber = y*9 + x + 1;
NSString *textureName = [NSString stringWithFormat:@"tile%d.png",tileNumber];
SKSpriteNode *tileNode = [SKSpriteNode spriteNodeWithTexture:[tileAtlas textureNamed:textureName]];
CGPoint position = CGPointMake((0.5 + x)*_tileSize - _levelWidth/2,(0.5 - y - 1)*_tileSize + _levelHeight/2);
tileNode.position = position;
tileNode.zPosition = -1.0f;
tileNode.blendMode = SKBlendModeReplace;
[(NSMutableArray *)backgroundTiles addObject:tileNode];
}
}
然后我使用这段代码将它们添加到我的场景中:
- (void)addBackgroundTiles
{
for (SKNode *tileNode in [self backgroundTiles]) {
[self addChild: tileNode];
}
}
问题是它没有为图块加载正确的纹理或根本找不到纹理。我最终得到的是这个(忽略蓝色圆圈):http: //i.stack.imgur.com/g39BF.png
这是我的瓷砖图集:http ://snk.to/f-ctp5yhpz
编辑:我正在使用 NameChanger(www.mrrsoftware.com/MRRSoftware/NameChanger.html) 重命名我的所有图块,是那个程序弄乱了我的 png 吗?据我所知,在我重命名它们后它们的顺序是正确的。