该章节主要介绍游戏中的BOSS
我主要制作了两个BOSS,分别为第6关的神灯和11关的大猩猩
首先,是BOSS的入场动画,例如第六关墙壁倒塌的效果。我们注意到BaseMap中有个虚函数virtual void waveEvent();,在BaseMap的addWaves函数最后加入waveEvent(),每个地图复写这个函数,根据各个地图写上自己的动画即可。其他关也有类似的动画。
Boss也是继承与Monster基类,除了基本属性略强外,拥有技能。添加一个定时器,来设置不同时间后释放技能。
两个BOSS都有一个同样的技能就是召唤小弟,下面介绍这个技能的实现方式。
在创建BOSS时,除了传入BOSS自身的路线外,将其他所有路线也传入BOSS,作为其小弟的路线,当释放技能时,根据BOSS目前所在位置计算出小弟的出生位置,每个path都添加若干小弟,别忘了在GameMangager加入。
void Boss_Canibal::addSons() { for(unsigned int i =0;i<sonPath.size();i++){ for(unsigned int j =1;j<sonPath.at(i).size();j++){ std::vector<Point> points = sonPath.at(i).at(j); auto canibalOffspring = CanibalOffspring::createMonster(points,pointCounter); this->getParent()->addChild(canibalOffspring); GameManager::getInstance()->monsterVector.pushBack(canibalOffspring); } } }除此之外,还有其他技能,思路和防御塔技能一样,没有什么好介绍的~~