![]() |
скорость игры
Привет всем !
Написал игру на Blitz3d используя чисто 2d формат сокращенно суть кода такая.... frameTimer=CreateTimer(60) While Not KeyHit(1) WaitTimer(frameTimer) Cls ; отрисовка чисто 2d Flip Wend Сейчас пишу игру на Blitz3d в 2d с использованием FastImage сокращенно суть кода такая.... frameTimer=CreateTimer(60) While Not KeyHit(1) WaitTimer(frameTimer) Cls ; отрисовка 2d при помощи FastImage Flip Wend Вопрос: в первом коде отрисовка экрана нормальная.... почему во втором случае при использовании FastImage команда WaitTimer(frameTimer) сильно тормозит отрисовку экрана при отключении WaitTimer(frameTimer) отрисовка экрана нормальная ? Вопрос: Какой способ сделать скорость игры одинаковой (на разных компьютерах), в случае использования FastImage, наиболее подходящий ? Подскажите кто знает............:dontknow: |
Ответ: скорость игры
Гугли "дельтатайминг".
|
Ответ: скорость игры
Я еще эту проблему не решал, но думаю, что ее можно решить следующим образом:
Код:
startTime=MilliSecs() Однако я думаю, что тут все нужно делать серьезнее - в начале тела цикла узнавать, сколько прошло времени с момента прошлого начала исполнения тела цикла, эту величину заносить в переменную (к примеру, ту же passed), и потом подставлять прошедшее время в качестве коэффициента: Код:
MoveEntity player, 0, 0, 0.01*passed Почему 2-й способ лучше 1-го? Потому, что при использовании 1-го способа, если компьютер зависает, то темп игры будет значительно медленнее, а при исп. 2-го способа этого удастся избежать. |
Ответ: скорость игры
Как раз несколько дней назад решал эту проблему, тоже юзаю Fast-либы. В общем сделал так - разделил функцию отвечающую за обработку игры на две - в первой функции обсчитывается математика, во второй - графика. Ту что обсчитывает математику запихнул в цикл с ограничением фпс, в результате все передвижения спрайтов у меня стабилизировались до нужной скорости. А вторую функцию отрисовки вынес за цикл, в результате у меня на одной машине 70 фпс, ну другой 120 фпс, а скорость обсчета механизмов игры все время стабильно залочена на 30 фпс.
|
Ответ: скорость игры
2 цикла попутно?
|
Часовой пояс GMT +4, время: 13:43. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot