kuloveyouwei的专栏

在这篇文章中,我们将添加坦克类,增加虚拟摇杆来移动我们的坦克。首页我们定义个坦克类,TankSprite继承自CCSprite,我们定义一些属性,比如坦克的类型,,坦克移动的速度,坦克移动的方向等,下面直接上代码:

TankSprite.h

#include "cocos2d.h"typedef enum {kBorn = 1,kPlusStarOne,kPlusStarTwo,kPlusStarThree}TankKind;typedef enum {kUp = 1,kDown,kLeft,kRight,kFire,kStay,kPause}TankAction;class TankSprite: public cocos2d::CCSprite{public:virtual bool init();CREATE_FUNC(TankSprite);static TankSprite* initWithDelegate(int numLife,int tKind,cocos2d::CCSize mSize);//定义移动速度int _speed;//lifeint _life;//地图sizecocos2d::CCSize _mapSize;//tank类型TankKind kind;//tank移动方向TankAction kaction;};TankSprite.cpp#include "TankSprite.h"#include "SimpleAudioEngine.h"using namespace cocos2d;using namespace CocosDenshion;bool TankSprite::init(){//////////////////////////////// 1. super init firstif ( !CCSprite::init() ){return false;}return true;}TankSprite* TankSprite::initWithDelegate(int numLife, int tKind, CCSize mSize){TankSprite *tank;switch (tKind) {case kBorn:tank=(TankSprite *)CCSprite::createWithSpriteFrameName("p1.png");tank->_speed=1;break;case kPlusStarOne:break;case kPlusStarTwo:break;case kPlusStarThree:break;default:break;}tank->_life=numLife;tank->_mapSize=mSize;tank->kind=(TankKind)tKind;tank->setScale(0.7);//默认向上tank->kaction=kUp;return tank;}上面我们就简单了定义了一个坦克类,然后我们加入到我们的地图层中,

在MapLayer.cpp中

//获取objectgroup_objects=gameMap->objectGroupNamed("objects");//初始化tank_tank1=TankSprite::initWithDelegate(numLife, tKind, _bg1Layer->getContentSize());//tank的出生地CCPoint tankPoint=this->objectPosition(_objects, "pl1");_tank1->setPosition(ccp(tankPoint.x+gameMap->getTileSize().width, tankPoint.y+gameMap->getTileSize().width));gameMap->addChild(_tank1, 1);//获取地图中定义的一些坐标点CCPoint MapLayer::objectPosition(CCTMXObjectGroup *group,const char *object){CCPoint point;CCDictionary *dic=group->objectNamed(object);point.x=dic->valueForKey("x")->intValue();point.y=dic->valueForKey("y")->intValue();return point;}这样,我们就把tank加入到我们的地图中去了,,,

~~~~~~~~~~~~~

好想从现在开始抱着你,紧紧地抱着你,一直走到上帝面前。

kuloveyouwei的专栏

相关文章:

你感兴趣的文章:

标签云: