在游戏中,很多怪物本身是会移动的,这里主要有蘑菇怪,乌龟等。
说起怪物的移动,首先在游戏里先要考虑怪物的抽象和设计。
在CMMonster.h中,有个类CMMonsterBasic,这个类抽象了所有的怪物,具体的怪物都是它的派生类,比如CMMonsterMushrooms蘑菇怪。
CMMonsterBasic继承自CCNode和CMSender,所以怪物都是渲染对象,并且有消息发送功能。
怪物基本类的接口:
virtual bool init(CCPoint ptMonsterPos,CMMario *pMario,CMGameMap *pGameMap,CMReceiver *pReceiver); 初始化
virtual bool OnCollisionMario() = 0; 与马里奥相撞处理
virtual void Dead(enMonsterDeadType DeadType); 怪物死亡
virtual bool OnCallPerFrame(float fT); 帧刷新定时调用
void MonsterTurn(); 怪物转向,比如蘑菇怪遇到阻挡它的墙时,它会转向
怪物类的基本数据
CMMario *m_pMario; 马里奥对象
CMGameMap *m_pGameMap; 地图对象
enMoveDirection m_MoveDirection; 移动方向
bool m_bIsActivation; 是否激活
float m_fDropSpeedPlus;