|
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 16
|
||||||
Фикс скорости Игры11.12.2012, 12:40. Показов 3098. Ответов 3
Метки нет (Все метки)
Здравствуйте ув. программеры.
Очень прошу помочь с подключением таймера для фиксирования скорости передвижения объектов в игре (пишу с помощью openGL. т.к. в зависимости от мощности компа скорость поворота (допустим космического кораблика) будет разной на разных компах. Слышал что это как-то можно исправить с мопощью отслеживания прошедшего времени с момента нажатия на клавишу управления. Например при зажатии клавиши для поворота на 500 миллисекунд объект (кораблик) должен повернуться на 180 градусов. и соответственно при 250 мс на 90, и т.п. привожу задействованные в данном процессе отрывки кода:
Желательно как можно подробней, и понадобятся ли какие нибудь дополнительные заголовочные файлы? Заранее спасибо! Добавлено через 1 минуту типы GLfloat = float GLint = int
0
|
||||||
| 11.12.2012, 12:40 | |
|
Ответы с готовыми решениями:
3
Фикс динамичный фикс |
|
58 / 58 / 13
Регистрация: 12.11.2011
Сообщений: 109
|
||||||
| 11.12.2012, 13:20 | ||||||
|
Я в своей игре сделал метод корректировки скорости всех элементов игры. Для этого надо узнать за какое время прошла очередная итерация цикла, а за тем обрабатывать это время так-чтобы каждому эл-ту игры прибавилась или вычитать скорость. Сделать скорость каждого эл-та игры зависимой от очередной итерации цикла.
Тогда игра будет всегда идти с одинаковой скоростью, даже если комп тормозит, либо слишком слабый, либо слишком мощный. Кстати в конце цикла хорошо останавливать поток на 1 миллисекунду (что-то типа Sleep(1)). done = true; лучше вынести за цикл. Зачем её каждый её раз инициализировать? Это должно выглядеть примерно так:
1
|
||||||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||||||
| 11.12.2012, 13:22 | ||||||
|
Есть два диаметрально различающихся решения:
1) Вычислять время, прошедшее между кадрами и с учётом этого времени вычислять "приращения" для перемещений и прочего. Т.е. на слабой машине выполнится одно перемещение на 10 мм, а на быстрой машине выполнится пять перемещений, но по 2мм каждое (условно говоря). 2) Фиксировать частоту кадров (это гораздо проще). Ты вычисляешь, сколько времени ушло на отрисовку одного кадра. Сравниваешь затраченное время с заданной единицей времени (например 1/60 секунды) и, если затраченное время меньше, то усыпляешь игру на доли секунды, не получишь эту 1/60 секунды. Второй вариант проще закодировать
1
|
||||||
|
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 16
|
|
| 11.12.2012, 15:39 [ТС] | |
|
спасибо ребят, буду тестировать)
0
|
|
| 11.12.2012, 15:39 | |
|
Помогаю со студенческими работами здесь
4
фикс кода Фикс числа
фикс кода Фикс ошибок Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|