2014-05-07 47 views
0

我將紋理圖集拖入我的項目中。圖片命名正確(「heliani_1-9」) 動畫運行平穩,除了3幀,在白底上顯示爲大紅十字。 (見截圖附後)Sprite套件動畫:圖集錯誤

enter image description here

什麼是錯我的代碼?

乾杯

#import "MRMPlayer.h" 

@implementation MRMPlayer 

-(instancetype)init 
{ 
    self = [super init]; 
    { 

     [self setupAnimations]; 

     [self runAction:[SKAction repeatActionForever:[SKAction animateWithTextures:self.runFrames timePerFrame:0.5 resize:YES restore:NO]] withKey:@"heli"]; 

     self.name = playerName; 
    } 
    return self; 
} 


-(void) setupAnimations{ 
    self.runFrames = [[NSMutableArray alloc]init]; 
    SKTextureAtlas *heliAtlas = [SKTextureAtlas atlasNamed:@"heli"]; 

    for (int i = 0; i < [heliAtlas.textureNames count]; i++) { 
     NSString *tempName = [NSString stringWithFormat:@"heliani_%d",i]; 
     SKTexture *tempTexture = [heliAtlas textureNamed:tempName]; 
     if(tempTexture) { 
      [self.runFrames addObject:tempTexture]; 
     } 
    } 
} 


@end 
+0

大紅色的X表示在您的地圖集中找不到圖像。確認你的動畫在你的地圖集中有所有的圖像,你認爲你有。 – sangony

+0

我知道,我查了好幾次。他們在那裏,並正確命名。我甚至幾次清理了我的項目,嘗試了重命名的項目,我沒有擺脫它。 http://s7.directupload.net/images/140507/rxv7kwtk.png –

+0

我和我的大眼睛的形象6具有命名不一致:)不知道這可能會導致你所有的問題,但肯定有助於窺探。 – sangony

回答

1

轉到產品菜單,你會看到Clean選項。

現在,按住option按鈕鍵盤上,文本應更改爲Clean build folder...

選擇一個選項,它會另外刪除緩存很多的事情,包括紋理地圖的衍生數據文件夾,和我發現會導致像你所描述的問題。如果您在地圖集中重命名文件,那通常是我自己遇到此問題時。

我不喜歡,這個選擇是你有種要爲工作的東西,會是不錯的選擇第二種方法有,而無需按住Option鍵。

如果不解決這個問題,你真的有一個命名問題海事組織。

注意 您也可以刪除管理器窗口衍生數據的文件夾。

+1

謝謝你,但錯誤依然存在,我會創建新的PNG我自己並再次嘗試它。我需要一個給予好評,以給予好評的意見(我有14的那一刻)PLZ給我一個給予好評,我會給予好評你的答案。乾杯 –

+1

我會檢查你的文件名從什麼任何差異你代碼正在尋找動畫的幀,這是地圖集中唯一的幀嗎?你正在循環中使用地圖集的'count'屬性來確定幀號。因此,如果在你的地圖上還有其他紋理靈魂這也可能導致同樣的問題。 – prototypical

+1

好吧,剛剛注意到你在0開始循環,而在你的地圖集中,沒有'heliani_0'。這可能會導致一個大的紅色x。你做一個測試,看看紋理是否存在,也許在那裏拋出一個'NSLog',這樣你可以看到如果'0'是索引,那麼這個測試是錯誤的。 – prototypical