Timers
Здравейте,
ясно как с един таймер да местя един обект, но какво правя ако имам няколко от този обект?
Да предположим примерно, че искам да направя падащи снежинки:
Имам си мембър:
std::vector<SnowFlake> _snowFlakes;
и в инициализацията на Game:
_snowFlakes.resize(SNOWFLAKE_COUNT);
for (int32_t i = 0; i < SNOWFLAKE_COUNT; ++i) {
_snowFlakes[i].init(i, config.fallingTimerId);
_snowFlakes[i].startAnim();
}
В обекта съответно:
int32_t SnowFlake::init(const int32_t indx, int32_t timerId) {
_fallingTimerId = timerId;
_snowFlakeImg.create(TextureId::SNOWFLAKE_ID, Point(0 + indx* 50, 0));
return EXIT_SUCCESS;
}
void SnowFlake::startAnim() {
Timer::startTimer(25, _fallingTimerId, TimerType::PULSE);
}
И съответно само първата тръгва да пада, а за другите изписва грешка "Error, trying to start an already existing timer with ID: " 0 .. Което е логично, но как тогава да го направя да работи за примерно 100 такива обекта? Ако трябва в CommonDefines да напиша 100 ID-та и после да ги попълня в EngingeConfigLoader-a, a след това да ги подавам за всеки обект ми се струва нелогично?
Нещо не ми става ясно как да процедирам при повече обекти.. Ще се радвам ако някой ми помогне.
Поздрави,
Илиян