//---------------------------------------------------------------------------------------- // others function means other players' //---------------------------------------------------------------------------------------- void BaseLevelBuilder::addMonster(MonsterInitInfo info) { std::map<uint32_t, SpriteMonster*>::iterator itor = m_level->m_MonsterInfo.find(info.uid); if (itor == m_level->m_MonsterInfo.end()) { //add monster ASSERT(m_level->m_levelDataReference->mapFilePointer != NULL, "map file is empty"); SpriteMonster* monster = LevelObjectCreator::sCreateSpriteMonster(info); monster->SetID(info.uid); monster->setTag(MAP_TAG_MONSTER); monster->setPosition(info.pos); //printf("addMonster %f, %f\n", info.pos.x, info.pos.y); //添加阴影 /*ASprite* pAsprite = AspriteManager::getInstance()->getAsprite("spriteBin/shadow.bin"); if(pAsprite != NULL) { CCPoint cp; CCSprite* pCSprite = pAsprite->getSpriteFromFrame(0, 0, cp); if(pCSprite != NULL) { pCSprite->setPosition(ccp(0, 0)); pCSprite->setTag(SHADOW_TAG); monster->addChildToRoot(pCSprite); } }*/ CATLObjectLayer* pObjLayer = dynamic_cast<CATLObjectLayer*>(m_level->m_pObjectsLayer); if(pObjLayer) { pObjLayer->AddRoleShadow(monster); } //为精英怪添加特效 if(info.isElite) { EffectSprite * eliteEffect = ParticleManager::Get()->createEffectSprite(206,""); eliteEffect->SetAnim(kType_Play, 1, true); eliteEffect->setTag(ELITE_TAG); monster->addChildToRoot(eliteEffect); } if (m_level->m_pObjectsLayer) { m_level->m_pObjectsLayer->addChild(monster, LevelLayer::sCalcZorder(monster->getPosition())); } m_level->m_MonsterInfo.insert(std::pair<uint32_t, SpriteMonster*>(info.uid, monster)); } else { CCLog("error, the player has add before"); } }