Я делаю игру в cocos2dx, но я не знаю, как создать таймер обратного отсчета, чтобы у игрока было только определенное количество времени, чтобы завершить уровень до истечения времени.Каков наилучший способ создания таймера обратного отсчета в Cocos2d-x?
1
A
ответ
1
Вы можете использовать метод schedule
для вызова функции через определенное время и соответствующим образом обновить метку вашего таймера.
Проверьте это:
Создать частный
int
элемент называетсяcountdown
, например, и инициализировать его с количеством секунд, которые вы хотите обратный отсчет от. Кроме того, объявляет таймерLabel
(назовем егоlbl
)в
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
декларировать и осуществить
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)); }