cocos2d-x游戏开发系列教程-坦克大战游戏关卡选择场景的编写下

上篇文章写了Paddle类来处理精灵的点击、触摸事件,现在我们在Paddle的基础上

写一个MyPaddle类,来处理上一关、下一关、开始游戏按钮的点击事件。

1.类声明如下:

class MyPaddle :
public Paddle
{
CC_SYNTHESIZE(enum_evt, m_evttyp, evttyp);
CC_SYNTHESIZE(ChoiceScene*, m_pSence, pSence); public:
MyPaddle();
~MyPaddle(); virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event);
virtual void ccTouchEnded(CCTouch* touch, CCEvent* event); private:
bool bFlag;
};

2.其中bFlag用于标记是否被点击,我们处理ccTouchBegan和ccTouchEnded来处理点击事件:

bool MyPaddle::ccTouchBegan(CCTouch* touch, CCEvent* event)
{
if (Paddle::ccTouchBegan(touch, event))
{
bFlag = true;
return true;
}
return false;
} void MyPaddle::ccTouchEnded(CCTouch* touch, CCEvent* event)
{
Paddle::ccTouchEnded(touch, event);
if (bFlag)
{
bFlag = false;
m_pSence->touchDownAction(this, m_evttyp);
}
}

3.可以看到ccTouchEnded中确认精灵被点击后会调用场景中的touchDownAction,

其中第二个参数是点击的事件类型,我们在ChoiceScene中实现touchDownAction这个函数:

在实现之前用一个头文件存放一些游戏中的常量,先定义一个常量和一些枚举类型,

#define ROUNDS   20

enum enum_evt {
evt_start,
evt_pressA,
evt_pressB,
evt_text
};

ROUNDS是关卡总数,enum_evt是事件类型

然后再ChoiceScene中定义如下内容

public:
void touchDownAction(CCObject* sender , unsigned int controlEvent);
private:
void update();
int m_nRound;

m_nRound初始化为1,其中update根据m_nRound的值更新显示的关卡数,下面我们写他们的实现代码如下:

void ChoiceScene::touchDownAction(CCObject* sender, unsigned int controlEvent)
{
if (controlEvent == evt_pressA)
{
m_nRound = 1 + (m_nRound - 1 + ROUNDS - 1) % ROUNDS;
update();
}
else if (controlEvent == evt_pressB)
{
m_nRound = 1 + (m_nRound + 1 + ROUNDS - 1) % ROUNDS;
update();
}
else if (controlEvent == evt_start)
{
//开始对应关卡的场景,稍后添加
}
} void ChoiceScene::update()
{
char szTemp[260];
CCLabelAtlas* label1 = (CCLabelAtlas*)getChildByTag(evt_text);
sprintf(szTemp, "%d", m_nRound);
label1->setString(szTemp);
}

可以看到update中,getChildByTag来根据Tag来获取子节点的指针,还记得我们在ChoiceScene中的代码吗?

	//5.对现实关卡的数字进行操作,设置显示数字为1,
//设置锚点,设置缩放,设置位置已经颜色,
int i = 3;
ccColor3B color = { 0, 0, 0 };
float* fSetting = fSettings[i];
CCLabelAtlas* label1 = CCLabelAtlas::create("1", szImgs[i], 16, 32, '.'); CCSize sz = label1->getContentSize();
label1->setAnchorPoint(ccp(0.5f, 0.5f));
label1->setScaleX(szWin.width / sz.width * fSetting[0]);
label1->setScaleY(szWin.height / sz.height * fSetting[1]);
label1->setPosition(ccp(szWin.width * fSetting[2], szWin.height * fSetting[3]));
label1->setColor(color);
addChild(label1, 0);

可以看到我们在ChoiceScene中第五步最后addChild,我们现在改为

addChild(label1, 0, evt_text);

这样,我们在update中可以获取到这个精灵对象,并修改它显示的内容。

4.最后我们在MyPaddle中添加一个通过纹理创建精灵的函数,注意在类中声明是静态函数:

MyPaddle* MyPaddle::paddleWithTexture(CCTexture2D* pTexture)
{
MyPaddle* pPaddle = new MyPaddle();
pPaddle->initWithTexture(pTexture);
pPaddle->autorelease();
return pPaddle;
}

5.万事具备了,只需要把ChoiceScene中创建的 上一关、下一关、开始游戏按钮的精灵

换成我们的MyPaddle精灵:

	//4.分别对开始游戏,上一关,下一关按钮的图片加载上来显示到合适位置
enum_evt evts[4] = {evt_start, evt_pressA, evt_pressB, evt_text};
for (int i = 0; i < 3; ++i)
{
float* fSetting = fSettings[i];
CCTexture2D* paddleTexture = CCTextureCache::sharedTextureCache()->addImage(szImgs[i]);
//CCSprite* pPaddle = CCSprite::createWithTexture(paddleTexture);
MyPaddle* pPaddle = MyPaddle::paddleWithTexture(paddleTexture);
CCSize szBtn = pPaddle->getContentSize();
pPaddle->setScaleX(szWin.width / szBtn.width * fSetting[0]);
pPaddle->setScaleY(szWin.height / szBtn.height * fSetting[1]);
pPaddle->setPosition(ccp(szWin.width * fSetting[2], szWin.height * fSetting[3]));
addChild(pPaddle); //设置当前场景到MyPaddle中,然后设置事件类型到MyPaddle中
pPaddle->setpSence(this);
pPaddle->setevttyp(evts[i]);
}

可以看到注释的位置替换成了额我们的MyPaddle精灵:

MyPaddle* pPaddle = MyPaddle::paddleWithTexture(paddleTexture);

然后再最后在pPaddle中设置了我们的场景和相应的事件类型。

		pPaddle->setpSence(this);
pPaddle->setevttyp(evts[i]);

好了,现在我们编译运行程序,可以看到可以*选择关卡和显示关卡了,如下图:

aaarticlea/png;base64,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" alt="" />

好了,下一篇我们写游戏关卡内容场景的设计,以及相应关卡开始按钮切换到关卡内容场景的事件。

本篇完整源码下载地址:

http://download.csdn.net/detail/yincheng01/6725981

上一篇:js使用面向对象编写下拉菜单


下一篇:学就完事了!万星项目带你做 3D 游戏——GitHub 热点速览 v.21.18