资源:http://download.youkuaiyun.com/detail/hezeping888/5717513
上一节 完成了
触摸 发射子弹,不同型号大炮发射不同型号的子弹,子弹型号与大炮型号绑定 ,可以自由升级大炮型号
本节将实现 在主游戏界面动态添加鱼儿 并让鱼儿鲜活的在游戏界面活动起来。
GameLayer:加载定义的鱼儿,并调度鱼儿的创建
Fish:不同类型的鱼儿创建,并让鱼儿在游戏界面活动,并在鱼儿游出主游戏界面时自动销毁自己。
(此处不必立刻销毁,可以再完善,让鱼儿重新另外一个位置出现)
现在给出鱼儿的的头文件架构:Fish.h
#ifndef __FishingJoyStep1__Fish__
#define __FishingJoyStep1__Fish__
#include "cocos2d.h"
class GameLayer;
class Fish : public cocos2d::CCObject{
public:
virtual ~Fish();
/**
创建一条鱼儿,主要负责被创建的鱼儿的内存管理设置
@param fishType 鱼儿的类型
@param gameLayer 游戏主界面
@param pBatchNodeFish 装载鱼儿的地方
*/
static Fish * createWithFishType(int fishType,GameLayer *gameLayer,cocos2d::CCSpriteBatchNode *pBatchNodeFish);
//展示鱼儿被捕获后的死亡效果
void showCaught();
public:
CC_SYNTHESIZE_READONLY(bool, m_bCaught, Caught);//鱼儿是否被捕获标记
private:
//实际创建鱼儿的地方
bool initWithFishType(int fishType,GameLayer *gameLayer,cocos2d::CCSpriteBatchNode *pBatchNodeFish);
//鱼儿被捕获后,把自己和相关资源冲主游戏界面销毁
void removeSelf();
//构造鱼儿在主界面的运动轨迹,*&moveto 用来承载构造后的鱼儿运动轨迹
void getPath(cocos2d::CCMoveTo *&moveto);
private:
CC_SYNTHESIZE(GameLayer *, m_pGameLayer, GameLayer);//游戏主界面
CC_SYNTHESIZE(cocos2d::CCSpriteBatchNode *, m_pBatchNodeFish, BatchNodeFish);//主界面中用来装载鱼儿的地方
CC_SYNTHESIZE(int, m_nFishType, FishType);//鱼儿的类型,从fish.plist,fish2.plst,fish3.plist,fish4.plist中找到鱼儿类型定义
CC_SYNTHESIZE(cocos2d::CCSprite *, m_pSpriteFish, SpriteFish);//被创建的鱼儿精灵
CC_SYNTHESIZE(cocos2d::CCParticleSystem *, m_pParticleBubble, ParticleBubble);//某些鱼儿运行时可以跟随例子效果,如美人鱼运动时不断的冒气泡
bool m_bParticleBubble;//标记当前的鱼儿是否应有的粒子效果,便于在销毁自己的时候效果相关资源
};
#endif /* defined(__FishingJoyStep1__Fish__) */
上述是否有不清晰的呢?欢迎通过邮箱沟通交流。
好的,我们下面看看相关方法的实现:Fish.cpp
//引入头文件