我有一堆磚的地圖集,我試圖將其加載到使用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
編輯:我使用NameChanger(www.mrrsoftware.com/MRRSoftware/NameChanger.html)重新命名我的所有瓷磚,這可能是那個弄亂了我的PNG的程序嗎?據我所知,在我重新命名後,它們的順序是正確的。
我不能看到名字換是你的問題,只要你做你的框架已經呈現後(創建)和將它們添加到寰椎前。這個名字換將不會被改寫的任何文件,只是改變了文件名,如果你用手重命名這些你會怎麼做。做當然是確保他們有正確的擴展名「巴紐」和@ 2個前綴,如果這是你使用的是什麼。 – fuzzygoat
我沒有了@ 2個擴展,但我補充說,現在,問題仍然存在。 – Marcus