void CreatureManager::Update(float delta) { for (VCharacter::iterator it=m_VEnemyList.begin();it!=m_VEnemyList.end();it++) (*it)->Update(delta); for (VCharacter::iterator it=m_VFriendList.begin();it!=m_VFriendList.end();it++) (*it)->Update(delta); if(m_nActionCreatureNum != -1) { Character* cha = GetEnemy(m_nActionCreatureNum); if(cha->GetFinish()) m_nActionCreatureNum = -1; //测试用 if (cha->GetCamp() == eCamp_Enemy && cha->GetActionStage() == eActionStage_AttackStage) { m_nActionCreatureNum = -1; cha->SetFinish(true); } } SelectCreature(); UnSelectCreature(); ShowCreatureInfo(); }
void CreatureManager::Update(float delta) { for (VCharacter::iterator it=m_VEnemyList.begin();it!=m_VEnemyList.end();it++) { if((*it)->GetDead() == true) m_VEnemyDeadList.push_back(*it); else (*it)->Update(delta); } for (VCharacter::iterator it=m_VFriendList.begin();it!=m_VFriendList.end();it++) { if((*it)->GetDead() == true) m_VFriendDeadList.push_back(*it); else (*it)->Update(delta); } //移除死亡单位 for (int i=0;i<m_VEnemyDeadList.size();i++) { RemoveEnemy(m_VEnemyDeadList[i]); } m_VEnemyDeadList.clear(); for (int i=0;i<m_VFriendDeadList.size();i++) { RemoveEnemy(m_VFriendDeadList[i]); } m_VFriendDeadList.clear(); if(m_nActionCreatureNum != -1) { Character* cha = GetEnemy(m_nActionCreatureNum); if(cha->GetFinish()) m_nActionCreatureNum = -1; //测试用 if (cha->GetCamp() == eCamp_Enemy && cha->GetActionStage() == eActionStage_HandleStage) { m_nActionCreatureNum = -1; cha->SetFinish(true); } } SelectCreature(); UnSelectCreature(); ShowCreatureInfo(); }