1
他們似乎都得到自動釋放我創建它們= S是否可以創建* CCAnimation對象的std :: map?
void SceneView::createAnimation(KillerRabbit* killerRabbit, std::string animation) {
CCArray* animFrames = CCArray::createWithCapacity(15);
int first = std::stoi(killerRabbit->spriteSheetMap[animation]["FIRST"]);
int last = std::stoi(killerRabbit->spriteSheetMap[animation]["LAST"]);
char str[100] = {0};
for (int i = first; i <= last; i++) {
// Obtain frames by alias name
sprintf(str, (killerRabbit->spriteSheetMap[animation]["KEY"]+"[%d].png").c_str(), i);
CCSpriteFrame* frame = sharedSpriteFrameCache->spriteFrameByName(str);
animFrames->addObject(frame);
}
spriteAnimationsMap[killerRabbit->spriteName][animation] = CCAnimation::createWithSpriteFrames(animFrames, 0.1f);
// 14 frames * 1sec = 14 seconds
rabbitSprites[killerRabbit->spriteName][animation]->
runAction(CCRepeatForever::create(CCAnimate::create(spriteAnimationsMap[killerRabbit->spriteName][animation])));
}
如果我忽略了這部分代碼的時刻:
rabbitSprites[killerRabbit->spriteName][animation]->
runAction(CCRepeatForever::create(CCAnimate::create(spriteAnimationsMap[killerRabbit->spriteName][animation])));
並嘗試訪問該對象:
spriteAnimationsMap[killerRabbit->spriteName][animation]
在另一個方法的代碼後面的部分,該地圖內的對象將被自動釋放,我如何保留它,以便我可以使用不同的動畫存儲在以後的時間?
的KillerRabbit回來:) – 2013-04-04 20:49:47
這兔子是不是致命的,因爲我希望它可能是尚未=( – Hobbyist 2013-04-04 20:50:39
你怎麼知道它已被釋放?爲什麼'runAction'代碼行改變? – 2013-04-04 20:52:29