Одинаковая скорость.
Совет всем новичкам писать эту фишку, чтоб потом не сталкиваться с проблемами разной скорости на разных компах, особенно в крупных проектах.
Как это сделать: 1) Сразу после инициализации графики пишем: Код:
Global elapsed,FPS,period,time,ticks,tween# Код:
FPS=50 Код:
elapsed=MilliSecs()-time If k=ticks Then CaptureWorld Next 4) Меняем RenderWorld наRenderWorld tween PS:Все это из примера Castle, поставляемого с программой Как видите все просто :) |
Re: Одинаковая скорость.
AndruXa, ага, я эту фишку распространяю давныыым давно.
Вот она, сразу кодом ;) |
Re: Одинаковая скорость.
есть еще варианты ?? ;)
|
Re: Одинаковая скорость.
Цитата:
|
Re: Одинаковая скорость.
Да и называеться она: Синхронизация.
Я бы назвал так: Стабилизация UPS. |
Re: Одинаковая скорость.
есть еще синхронизация по дельта таймингу
синхротизация по таймеру и есть еще тупое ограничение Fps мертвыми циклами еще много чего есть |
Re: Одинаковая скорость.
Извиняюсь, но это создавалось для новичков, Вспомните себя вам и это было сложно(как и мне)
|
Re: Одинаковая скорость.
Для новичков создавались Хелп, CreateTimer() и WaitTimer().
Тебя заверить могу, что простого более и стабильного способа ФПС стабилизации найти не стоит пытаться даже, юный падаван... А ежели серьезно, то методов этих - как грязи и нужно выбирать наиболее подходящий к конкретной сиуации. Если же разницы между методами не видишь- не ищи лучшего от хорошего и юзай штатный таймер. |
Re: Одинаковая скорость.
Diplomat дело говорит, помнится он совместно с tormoz сделали комбинированную систему.
|
Re: Одинаковая скорость.
Diplomat, но дело то в том, что таким ограничением как во 2 посту по ссылке, реализуеться и небольшая оптимизация, т.к. рендер и логика не идут паралельно, а порой рендер пропускаеться, поэтому получается что упс первостепеннен а фпс если позволяеться - будет. С таймером же, они всегда вместе и поэтому фпс будет ниже чем с этим ограничением.
имхо. |
Re: Одинаковая скорость.
Цитата:
Цитата:
Синхронизатор зарежет ФПС фреймскипами, в итоге логика тормозить не будет, но на экране будет в лучшем случае слайдшоу. Дельтатайминг достаточно нестабилен- возможны постоянные перепады скорости и рывки. ... В итоге лично я избрал сочетание "программный ограничитель проходов логики" + "включаемый фреймскип" + "рендер твининг". В наиболее примитивном виде это выглядит так: Код:
;Всё внутри главного цикла И конечно же не стоит удивляться второй строке кода. |
Re: Одинаковая скорость.
Есть еще вариант, с хелпа блитза :
;************************************************* **** Описание Используйте эту команду в паре с WaitTimer для контроля скорости выполнения игры (fps). Вы можете использовать это в главном цикле программы. Это не позволит выполняться игре быстрее на более мощных компьютерах. Использование этой системы очень хорошая практика, если ваша игра будет выполняться на различных компьютерах. Пример ; Создаём таймер для контроля скорости frameTimer=CreateTimer(60) ; Главный цикл отрисовки экрана While Not KeyHit(1) WaitTimer(frameTimer) ; Пауза пока не пройдет 60 млс. с прошлого вызова Cls ; Сама отрисовка Flip Wend ; Уничтожаем таймер FreeTimer(frameTimer) ;************************************************* ******* |
Ответ: Одинаковая скорость.
Это идиотизм
|
Ответ: Одинаковая скорость.
Цитата:
|
Ответ: Одинаковая скорость.
Если время просчета логики займет больше времени чем нужно, резко снижается скорость игры. На слабых же компах все начинает тормозить из-за того что "отстает" прорисовка. Вроде бы так )
извиняюсь ))) Здесь же только прорисовка |
Часовой пояс GMT +4, время: 15:08. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot