Как правильно отсчитать время в игре

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dagobert
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 141
Зарегистрирован: 21.12.2002 (Сб) 6:48
Откуда: Russia

Как правильно отсчитать время в игре

Сообщение Dagobert » 10.03.2004 (Ср) 12:29

Пишу простую игрушку(тренируюсь), возникает проблема с заданием скоростей.
Скорость объекта обрабатываю следующим образом. Каждые dT миллисекунды смещаю объект на dX, dY.
Проблема в том, что когда я задаю малый промежуток dT, всё летает одинаково быстро на разных машинах(только чересчур быстро). А вот когда я пытаюсь замедлить движение - сюрпризы:
1. На разных машинах скорость абсолютно разная.
2. В среде VB и в компилированном варианте - то же самое(компилированный вариант тормозит).
Я сначала использовал timeGetTime, а потом DirectX.TickCount - не помогает.
Подскажите в чём дело?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.03.2004 (Ср) 14:10

Советую изменить тип расчета координат. Насколько я понял, ты каждые dT секунд делаешь: X = X + dX, Y = Y + dX. Советую сделать X = f(T), Y = f(T), где T - время игры (Tтекущее - Tзапуска), тогда будешь независим от производительности машины.
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 10.03.2004 (Ср) 18:53

QueryPerformanceFrequency() и QueryPerformanceCounter() - две апишки, дающие наиболее точное измерение времени. Но боюсь, у тебя там что-то не так в алгоритме, если директовых функций тебе мало...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList