Как синхронизировать перелистывание страниц с Вертикальный откат в оконном SDL-приложении?

В настоящее время я пишу игру безмерно изощренной и хитрой, которая вызовет у вас трепет и поразит- о, хорошо, это головоломка 15, и я просто знакомлюсь с ней SDL.

Я работаю в оконном режиме и использую SDL_Flip в качестве обновления страницы общего случая, так как он автоматически отображается на SDL_UpdateRect полного окна в оконном режиме. Не оптимальный подход, но учитывая, что это всего лишь головоломка из 15 ...

Как бы то ни было, движения плитки происходят с невероятной скоростью. IOW, SDL_Flip в оконном режиме не включает никакой синхронизации с вертикальными откатами. Я работаю в банкомате Windows XP, но полагаю, что это правильное поведение для SDL и будет происходить и на других платформах.

Очевидно, что переход на использование SDL_UpdateRect ничего не изменит. Предположительно, мне нужно реализовать логику задержки в собственном коде. Но простой таймер на основе часов может привести к обновлениям, происходящим, когда окно наполовину отрисовано, вызывая видимые искажения (я забыл техническое название).

EDIT Эта проблема известна как «разрыв».

Итак - в игре в оконном режиме в SDL, как мне синхронизировать мои перелистывание страниц с вертикальным откатом?

РЕДАКТИРОВАТЬ Я видел несколько заявлений, при поиске решения невозможно синхронизировать перелистывание страниц с вертикальным откатом в оконном приложении. В Windows, по крайней мере, это просто неверно - я написал игры (под которыми я подразумеваю вещи того же уровня, что и головоломка из 15), которые делают это. Однажды я потратил некоторое время на то, чтобы поиграть с Dark Basic и Dark GDK - оба на основе DirectX и оба синхронизируют перелистывание страниц на вертикальный откат в оконном режиме.

5
задан Steve314 28 November 2010 в 03:03
поделиться