在cocos2d-x中为Hud图层添加分数

时间:2014-04-29 10:54:11

标签: cocos2d-x

我正在用cocos2d-x开发游戏。虽然试图更新它显示的分数11,但我希望分数应该继续增加。下面我粘贴了我的代码,请帮助。

 schedule(schedule_selector(HudLayer::updateScore));
    void HudLayer::updateScore(int score)
     {
         score=1;

            do {
                score=score+10;
                const int labelLength = 100;
          char scoreLabelText[labelLength];
                snprintf(scoreLabelText, labelLength, "Score: %d", score);
          scoreLabel->setString(scoreLabelText);
            } while (score<0);

1 个答案:

答案 0 :(得分:0)

你的分数停留在11的原因是你在函数的第一行将其设置为1。您似乎想将当前分数作为参数传递给此函数,但它不会像您的日程安排那样工作。

每次调用updateScore时添加10个点的示例代码:

void HudLayer::updateScore() // no argument needed
 {
     //score=1; <- this would override current score, bug/not needed

        do { // unnecessary
            score=score+10;
            const int labelLength = 100;
      char scoreLabelText[labelLength];
            snprintf(scoreLabelText, labelLength, "Score: %d", score);
      scoreLabel->setString(scoreLabelText);
        } while (score<0); //unnecessary
}

// in your *.h file
class HudLayer : <your inheritance> {

    int score;
    //your code

}

当然,您应该将score初始化为某个值,但只执行一次,例如在构造函数或init()方法中。

如果有什么不清楚,请告诉我。