好吧,到这一步,整个游戏基本上弄完啦,由于自己的水平也就这样.....重写的过程中很多细节处理的不好。
游戏中很多地方都留下了可扩充的代码,可是时间方面有点不够。。。而且也没美工
本次笔记内容:
1、思路&代码&效果展示
2、完结代码&资源下载
一:思路&代码
后面的内容基本上是木头书上的内容,没什么太大修改
和之前很多地方一样,把子弹单独抽离出来,然后绑定在英雄身上,那么英雄就可以带着子弹进行攻击
这样也方便之后的扩展.....毕竟这个游戏很多地方都是基本的,但是也留给可扩展的设计
那么,首先弄一个子弹的基类,也是为了之后扩展,比如英雄升级之后子弹也变了---但是本游戏没有完成那么多
#define SPEED_DEFAULT 10
class BulletBase : public Entity{
public:
BulletBase();~BulletBase();
//绑定目标
void lockAim(Entity* entity);
//获取目标
Entity* getAim();
void setUsed(bool isUsed);
bool isUsed();
//子弹是否攻击到敌人
bool isArrive();
protected:
//在攻击目标是调用,子类实现
virtual void onLockAim(Entity* aim)=0;
bool _isArrive;
bool _isUsed;
Entity* _aim;
CC_SYNTHESIZE(int,_atkValue,AtkValue); //攻击力
CC_SYNTHESIZE(int,_speed,Speed); //速度
};
实现
BulletBase::BulletBase(){
_isUsed = false;
_aim = NULL;
_speed = SPEED_DEFAULT;
_atkValue = 1;
}
BulletBase::~BulletBase(){
CC_SAFE_RELEASE(_aim);
}
void BulletBase::setUsed(bool isUsed){
_isUsed = isUsed;
setVisible(isUsed);
}
bool BulletBase::isUsed(){
return _isUsed;
}
void BulletBase::lockAim(Entity* entity){
if(entity != NULL){
CC_SAFE_RETAIN(entity);
CC_SAFE_RELEASE(_aim);
_aim = entity;