1. 声明两个变量
在HelloWorldScene.h中声明两个变量:
1
2
3
4
5
|
//游戏总分
int score;
//定义显示分数的控件
cocos2d::LabelTTF* labelTTFCardNumber;
|
声明了游戏总分和显示分数的控件
2. 加入分数标签和数字
在游戏界面的上面,左边是“分数”标签,右边是分数。
在HelloWroldScene.cpp的Init()函数中,添加如下代码:
01
02
03
04
05
06
07
08
09
10
11
|
//在上方加入游戏的分数
//加入“分数”label
auto labelTTFCardNumberName = LabelTTF::create(
"SCORE"
,
"HiraKakuProN-W6"
,80);
labelTTFCardNumberName->setPosition(Point(visibleSize.width/3,visibleSize.height-40));
addChild(labelTTFCardNumberName);
//加入具体的分数
labelTTFCardNumber = LabelTTF::create(
"0"
,
"HiraKakuProN-w6"
,80);
labelTTFCardNumber->setPosition(Point(visibleSize.width-400,visibleSize.height-50));
addChild(labelTTFCardNumber);
|
3. 卡片合并的时候,要添加分数
当卡片合并的时候,需要添加分数。四个上下左右滑动的函数,都要添加。例如向左滑动时:
[JavaScript]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
bool HelloWorld::doLeft(){
bool isdo =
false
;
for
(int y = 0; y < 4; y++) {
for
(int x = 0; x < 4; x++) {
for
(int x1 = x + 1; x1 < 4; x1++) {
if
(cardArr[x1][y]->getNumber() > 0) {
if
(cardArr[x][y]->getNumber() <= 0) {
cardArr[x][y]->setNumber(cardArr[x1][y]->getNumber());
cardArr[x1][y]->setNumber(0);
x--;
isdo =
true
;
}
else
if
(cardArr[x][y]->getNumber() == cardArr[x1][y]->getNumber()){
cardArr[x][y]->setNumber(cardArr[x][y]->getNumber()*2);
cardArr[x1][y]->setNumber(0);
//改变分数
score += cardArr[x][y]->getNumber();
labelTTFCardNumber->setString(String::createWithFormat(
"%i"
,score)->getCString());
isdo =
true
;
}
break
;
}
}
}
}
return
isdo;
}
|