2017-02-16 2 views

ответ

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)); 
    } 
    
Смежные вопросы