Posts: 1,659
Threads: 17
Joined: Sep 2008
Quote:
Originally Posted by Kolstin
Всем привет! У меня есть движущийся объект и мне нужно что бы ровно на пол пути вызвался колбек. Я делаю примерно вот так:
PHP Code:
new object = CreateDynamicObject(...);
new time = MoveDynamicObject(object, ...);
SetTimerEx("TestFunc", floatround(time / 2.0), false, "d", object);
Но выходит что TestFunc вызывается не в центре, а чуть дальше. На тестовом сервера ( localhost), я смог добавиться нужного мне результата:
PHP Code:
SetTimerEx("TestFunc", floatround(time / 2.25), false, "d", object);
Но на основном сервере ( на хостинге), TestFunc вызывается намного раньше центра. Как мне добиться заданной цели что бы не зависимо от хостинга оно вызывалось в центре пути?
|
Самое грамотное решение предложили:
Quote:
Originally Posted by stabker
Первое что приходит в голову это разделить движение на два этапа, т.е. двигаем объект до средины пути, в OnObjectMoved выполняем нужные действия и опять запускаем движение.
|
Но если не устроит (мало-ли будет заметен рывок или что-то ещё), то нужно использовать что-то поточнее, чем таймер (у таймеров погрешность ~25%). Можно воспользоваться timerfix плагином, или создать таймер, в котором сверять время через gettime().