Есть много методов, которые вы можете использовать для плавного перехода между кадрами. Вероятно, самым простым является двойная буферизация, когда построение кадра выполняется за пределами видимой видеопамяти, тогда весь блок памяти переключается на новое местоположение кадра (обычно с перелистыванием страницы, быстрым аппаратным переключением, но даже с созданием кадра в не-видеопамяти может быть выгодно «переписать» ее в видеопамять за одну быструю операцию).
При использовании этого метода переход может казаться намного более плавным, поскольку у вас никогда не будет отображаться наполовину построенный кадр. Это особенно верно, если переключение выполняется между аппаратными фреймами (по крайней мере, на более старых мониторах с ЭЛТ - я на самом деле не знаю, есть ли у более новых мониторов концепция вертикального и горизонтального восстановления).
Другой способ - обеспечить низкую стоимость расчета за кадр. Примером может служить только рисование линий туннеля в PacMan один раз в не-видеопамяти, чтобы вы могли сравнительно быстро «моргнуть» (потому что они никогда не меняются). Другими словами, построение фрейма будет состоять из:
- копирование стен туннеля, которые никогда не меняются.
- копирование точек, которые меняются редко.
- рисование символов, которые меняются довольно часто.
Это немного ускоряет процесс, я использовал этот трюк в играх с космическим шутером с поиском вниз, чтобы более глубокие кадры также могли двигаться медленнее, давая эффект параллакса.