关于CCArmatureDataManager求教

CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“Animation/monster20.png”,“Animation/monster20.plist”,“Animation/monster2.ExportJson”);
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“Animation/monster21.png”,“Animation/monster21.plist”,“Animation/monster2.ExportJson”);
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“Animation/monster22.png”,“Animation/monster22.plist”,“Animation/monster2.ExportJson”);

CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“Animation/monster10.png”,“Animation/monster10.plist”,“Animation/monster1.ExportJson”);
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“Animation/monster11.png”,“Animation/monster11.plist”,“Animation/monster1.ExportJson”);
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“Animation/monster12.png”,“Animation/monster12.plist”,“Animation/monster1.ExportJson”);

for( int i=0 ;i<5;i++)
{
char monsterAnuName;
sprintf(monsterAnuName,“monster%d”,heroD->AnuId);

CCLOG(“heroid=%d,anuid=%d,%s”,heroD->heroID,heroD->AnuId,monsterAnuName);
CCArmature* hero1 = NULL;
hero1 = new CCArmature();
if( heroD->AnuId == 1 )
{
hero1->init(“monster2”);
}
else
{
hero1->init(“monster1”);
}
hero1->getAnimation()->play(“loading”);
hero1->setPosition(ccp(point1.x * scalex,point1.y * scaley));
hero1->setTag(1000+heroD->id);
uiLayer_Attack->addChild(hero1);

}

代码如上…删减了一些东西…我加载了两个动画.monster1和monster2,为什么我哪个先加载…然后循环里边的动画就都是同一个…AnuId 肯定是有1有2的.但是都播放成我先加载的那个了

您好,请问循环中对所有的armature都播放了hero1->getAnimation()->play(“loading”); ,我不清楚您的heroD是何类型及如何初始化的,但是根据程序观察,您未在循环中设置heroD->id,那么你的循环内的判断是无用的。感谢您对CocoStudio的支持。

heroD->id取值是1或者2
这个是在外部获取的数据.

错了heroD->id是index.相当于i

能否提供更完整的代码段呢?或者提供一个示例以便我们更快的帮助您解决问题。感谢您对CocoStudio的支持。