2013-02-02 318 views
0

我有一個類代表我在Cocos2d中的角色。
我導出了spritesheet + .plist文件。Cocos2d自動精靈動畫

該角色有多個動畫。

該框架簡單地稱爲「Character_1.png」
最多四個。這是基本的步行動畫。

在許多精靈動畫教程,我發現這個樣本代碼,其中循環儘管前景幀緩存,只是把它添加到一個數組,所以你可以製作動畫:

for(int i = 1; i <= 4; ++i) { 
    [animationFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Character_%d.png", i]]]; 
} 

但是,因爲我的大部分的精靈會像這樣動畫,我想把它委派給一個超類。

我想過調用它像

spriteWithAnimations:(NSArray *)animationNames 

,然後我想看看他們,雖然,就像在上面的例子。

因此,作爲數組中的參數,我會得到一個字符串@"Character_%d",我會做一個while循環並檢查文件是否存在,雖然如此,我會將它添加到數組中。

唯一的問題是,我不能檢查是否一個幀「Character_05.png」存在,因爲CCSpriteFrameCache就沒有這樣的方法。

這通常如何解決?

+0

檢查Kobold2D www.kobold2d.com中的CCAnimation擴展類,它已經做了你打算做的事 – LearnCocos2D

+0

對不起,我已經定義了我使用Cocos2d的概念。 – NSAddict

回答

1

如果CCSpriteFrameCache對於給定的幀名稱返回nil,則知道它不存在。不優雅,但它的作品。

+0

我認爲它崩潰了,而不是返回'nil'值。 – NSAddict

+0

好吧,我測試了它,它確實可以工作,但它仍然打印出一個錯誤...沒有其他方法可以做到這一點嗎? – NSAddict

+0

對不起,我沒有早點回復你。你是對的,日誌只是一個調試日誌,它在部署時不會記錄任何東西。謝謝你的幫助! – NSAddict