我正在用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);
答案 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()
方法中。
如果有什么不清楚,请告诉我。