21.04.2012, 18:11
Суть вопроса в том, что я хочу оптимизировать спидометр. Делаю запуск таймера для обновления спидометра когда игрок садится в транспорт, останавливаю его когда выходит.
Сделал это так:
в newstate == PLAYER_STATE_DRIVER поставил старт, а oldstate == PLAYER_STATE_DRIVER остановку (удаление)
Также дополнительно останавливаю таймер при выходе из игры.
Но проблема в том, что иногда таймер запускается несколько раз и id нового таймера хранится в переменной, а старого нет, но он все еще работает. Понятно что таймер обновляет текстдравы скорости, бензина и т.д., а когда их несколько то бензин снимается быстрее в столько раз, сколько и запущено лишних таймеров (обычно не более 2х). Удалить "гуляющий" таймер который уже выпал из переменной нельзя, задаюсь вопросом как сделать чтобы он не мог запустится несколько раз?
P.S. Если есть другое решение проблемы, буду очень рад его выслушать
Сделал это так:
в newstate == PLAYER_STATE_DRIVER поставил старт, а oldstate == PLAYER_STATE_DRIVER остановку (удаление)
Также дополнительно останавливаю таймер при выходе из игры.
Но проблема в том, что иногда таймер запускается несколько раз и id нового таймера хранится в переменной, а старого нет, но он все еще работает. Понятно что таймер обновляет текстдравы скорости, бензина и т.д., а когда их несколько то бензин снимается быстрее в столько раз, сколько и запущено лишних таймеров (обычно не более 2х). Удалить "гуляющий" таймер который уже выпал из переменной нельзя, задаюсь вопросом как сделать чтобы он не мог запустится несколько раз?
P.S. Если есть другое решение проблемы, буду очень рад его выслушать