У меня есть атлас с кучей плиток, и я пытаюсь загрузить их в память с помощью SKTexture и SKTextureAtlas, но он не работает. Я использую следующий код, чтобы загрузить их:ios Загрузка текстуры из атласа не работает
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
EDIT: Я использую NameChanger (www.mrrsoftware.com/MRRSoftware/NameChanger.html) чтобы переименовать все мои плитки, может быть, это программа, которая испортила мои png? насколько я вижу, они находятся в правильном порядке после того, как я переименовал их.
Я не вижу, чтобы смена имени была вашей проблемой, если вы делаете это после того, как ваши рамки были созданы (созданы) и перед тем, как добавить их в атлас. Смена имени не будет переписывать ни один из файлов, просто изменив имена файлов, как вы это сделали бы, если бы вы переименовали их вручную. Разумеется, убедитесь, что они имеют правильное расширение «.png» и префикс @ 2x, если это то, что вы используете. – fuzzygoat
У меня не было расширения @ 2x, но я добавил, что теперь и проблема все еще остается. – Marcus