cocos2d-x游戏开发系列教程-超级玛丽09-怪物激活与移动

本文介绍了Cocos2d-x游戏开发中的怪物激活和移动机制。通过CMMonsterBasic类抽象所有怪物,具体怪物如蘑菇怪为派生类。怪物的移动逻辑主要在OnCallPerFrame函数中处理,包括激活、移动和碰撞检测。游戏开始时,根据tmx地图创建并定位怪物,初始时不激活。当马里奥与怪物距离达到一定值时,怪物会被激活并开始移动。
摘要由CSDN通过智能技术生成

在游戏中,很多怪物本身是会移动的,这里主要有蘑菇怪,乌龟等。

说起怪物的移动,首先在游戏里先要考虑怪物的抽象和设计。


在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;    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值