该章节主要介绍防御塔的子弹
有了防御塔没有子弹类是不能攻击敌人的,所以接着来讨论子弹,新建一个子弹基类Bullet.h
class Bullet : public Sprite
{
public:
Bullet();
~Bullet();
virtual bool init();
CREATE_FUNC(Bullet);
protected:
CC_SYNTHESIZE(int, maxForce, MaxForce);//攻击力
CC_SYNTHESIZE(int, bulletScope, BulletScope);//塔的子弹攻击范围
CC_SYNTHESIZE(int, bulletType, BulletType);//子弹类型
CC_SYNTHESIZE(Spawn*, bulletAction, BulletAction);//子弹飞行动画
Sprite* sprite;//子弹精灵-贴图
virtual void shoot(){};//攻击
virtual void removeBullet(){};//攻击完毕后移除
};
在基类中我们定义了一些共有的方法和属性,然后根据不同的子弹来重写它
例如上一篇提到的初级箭塔的弓箭,我们需要重写init()来给精灵贴上弓箭这张图片(arrow.png在plist里,实现加载过该plist,具体加载过程见开始动画章节)
bool Arrow::init()
{
if (!Sprite::init())
{
return false;
}
sprite = Sprite::createWithSpr