![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| isalex678 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 6.10.2011 Репутация: нет Всего: нет |
Поясните игровой цикл.
за что отвечают переменные: averagePassedTime, naiveTiming для чего надо alpha и какое её назначение Thread.sleep(8); почему 8? многое непонятно. где почитать на русском про игровые циклы.
зачем надо было запускать дополнительный поток ? подставляю this.run() - без него работает (может автор что то хотел сказать)
|
||||
|
|||||
| Nofate |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 13.10.2008 Репутация: 4 Всего: 8 |
Ну там же все расписано в комментариях.
В начала каждого прохода цикла, мы замеряем время, прошедшее с предыдущего прохода. Т.е., грубо говоря, на сколько должно продвинуться игровое время. Если замеренная величина меньше ноля (судя по комментариям автора это случается на двухъядерных процах от AMD), то отказываемся от "наивного" замера времени и ориентириуемся на среднее время выполнения цикла (а именно на взвешенную сумму среднего времени и измеренного времени в соотношении). Дальше секунды переводятся в тики, идет судя по всему отрисовка сцены, выводится FPS. Alpha - это количество тиков, на которое проматывается игровое время. Thread.sleep(8) добавляет в каждый цикл задержку и, таким образом, ограничивает минимальное время выполнения цикла. Это делается для того, чтобы не перерисовывать сцену слишком часто и снижает нагрузку на процессор. Число 8 автор, скорее всего, подобрал эмпирически. Я, например, для некритичных обновлений нередко использую 100-200 мс. Про использование потока сказать что-то конкретное трудно вне контекста остальной программы. Но, видимо, раз автор его использовал, значит зачем-то это было нужно, не так ли? Читать про игровые циклы особо нечего. Все, как правило, идет по стандартной схеме: вычисляем прошедшее время, обновляем состояние игровых объектов и подсистем (физика, геймплей, гуй, звук, мышиноклавиатурный ввод), рисуем очередной кадр. -------------------- The future is not set, there is no fate but what we make for ourselves. Нофейтово пространство и смежные области |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |