Страница 1 из 1

буферизация изображения си

Добавлено: 22 май 2011, 13:23
MYriad
Вот довелось мне и в этой ветке форума побывать...

Пишу прогу на borland c++ 3.1 (не я выбирал, такое задание), для доступа к графике использую стандартный egavga.bgi. Прога по сути является простенькой игрушкой, но суть не в проге, а в том, что в ней есть движущиеся элементы.
Первое, что пришло в голову - прогонять в цикле закрашивание старого изображения с последующей прорисовкой нового на пиксель правее (левее, выше, ниже).
Всё бы хорошо, но при движении изображение мерцает, а если их несколько, даже просматривается сам процесс заливки. Выставление небольшой задержки не помогает.
Второе, что пришло в голову - один раз рисовать изображение, копировать его в оперативку, а потом вставлять, закрашивать и снова вставлять, но функция putimage() почему-то не рисует изображение совсем, если хотя бы часть его выходит за пределы экрана, а мне надо, чтобы объект плавно появлялся из-за экрана.
Сейчас парюсь над функцией, которая бы попиксельно сдвигала объект, но что-то тоже ничего хорошего не выходит.

Подозреваю, что как-то можно было бы сделать, чтобы изображение сначала "рисовалось" в оперативке, а уже потом готовый кадр выводился на экран, но не могу найти, как это можно было бы реализовать.

У кого какие идеи есть, поделитесь, пожалуйста.

Re: буферизация изображения си

Добавлено: 27 май 2011, 06:33
0xFF
MYriad
Путь в никуда.

Надо пользовать фрейм буфер - формировать изображение на страничке в памяти, выводить страничку на экран, в это же время формировать след. кадр на страничке в памяти ...
Плюс квантование времени.
Плюс в вашем случае - спрайты.
Плюс ассемблерные вставки.

google в помощь, информации в сети огромное количество.

Плюс порыть на предмет граф. библиотеки под dos.