我創建了一個CCAnimation,如下所示。我試圖將延遲降低到.05f以下,動畫現在無法完成!它只有8幀。我不知道我是否做錯了什麼。起初我以爲這是內存泄漏,我失去了行動,所以我把它分配給一個強大的屬性來測試,並且仍然這樣做。我不確定延遲會如何導致我的動畫無法完成。我在模擬器中以每秒60幀的速度運行。CCAnimation低延遲沒有完成
使用狗頭2.0.4
誰能幫助?
else if([model currentState] == PROCESSING_FIRST_ACTION)
{
CCDirector* director = [CCDirector sharedDirector]; // process model
//Get the top left corner of the screen
int screen_height = director.screenSizeAsPoint.y;
int screen_width = director.screenSizeAsPoint.x;
id attacker = [model attacker];
id attackChoice = [attacker getRegisteredAttack];
CCAction* attack = [model.resourceManager animation: @"simple-attack-frame"];
CCSprite * attackSprite = [model.resourceManager sprite: @"simple-attack-frame-01"];
attackSprite.position = ccp(screen_width - rxa(80), screen_height - rya(80));
attackSprite.tag = 5;
self.action = attack;
CCNode * check = [self getChildByTag:5];
if(check == nil)
{
[self addChild: attackSprite];
[attackSprite runAction:attack];
}
}
resource manager:
-(id)animation: (NSString*)_resource
{
NSMutableArray *frames = [NSMutableArray array];
for(int i = 1; i <= 8; ++i)
{
[frames addObject:
[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
[NSString stringWithFormat:@"%@-0%d", _resource, i]]];
}
CCAnimation *animation = [CCAnimation animationWithSpriteFrames: frames delay:1/60];
CCAction * action = [CCAnimate actionWithAnimation: animation];
return action;
}
我見過這樣的問題,但在cocos2d v1.1。他們在動畫系統中改變了一些東西,我並沒有真正理解代碼,這對我來說似乎打了折扣。結果是時機關閉了,有時動畫根本沒有播放。我不知道這個改變是否已經整合到2.0。您可能想嘗試在vanilla cocos2d 2.0項目中重新創建場景,然後提交錯誤報告。 – LearnCocos2D
哦,這不好。我的意思是,如果我無法獲得動畫在遊戲中工作,那是一個遊戲突破bug =(。 – AwDogsGo2Heaven
動畫由ActionManager停止,因爲流逝的時間大於持續時間(isDone)。但我認爲最簡單的解決方案是隻有在顯示最後一幀後纔會使isDone過載 – AwDogsGo2Heaven