在Cocos2d-x中创建倒数计时器的最佳方法是什么?

时间:2017-02-16 01:41:33

标签: timer cocos2d-x

我正在使用cocos2dx进行游戏,但我不知道如何创建倒数计时器,以便玩家在时间用完之前只有一定的时间来完成关卡。

1 个答案:

答案 0 :(得分:1)

您可以使用schedule方法在一段时间后调用函数并相应地更新计时器的标签。

检查出来:

  1. 例如,创建一个名为int的私有countdown成员,并使用您要倒计时的秒数对其进行初始化。另外,声明计时器的Label(让我们称之为lbl

  2. 在场景的init方法中,安排更新程序并像这样初始化标签

    this->lbl = Label::createWithTTF(std::to_string(this->countdown), "fonts/Marker Felt.ttf", charSize / 15);    // make sure you #include <string>
    lbl->setPosition(Vec2(0,0));     // set the position to wherever you like
    this->schedule(schedule_selector(MySceneClass::updateTimer), 1.0f);    // calls updateTimer once every second
    
  3. 声明并实现updateTimer看起来像这样:

    void MySceneClass::updateTimer(float dt)    
    {
        if (!countdown)
            return;     // when countdown reaches 0, stop updating to avoid negative values
        lbl->setString(std::to_string(--countdown));
    }