Unorganized miserly pills online no preparation

Свобода слова. Разговаривать можно о чем угодно не нарушая правил форума.

Модераторы: Al_lexx, Sharp, ionika, Happy_MAN, 0xFF, Atom, Serega S.U.

Ответить
Аватара пользователя
MYriad
Сообщения: 454
Зарегистрирован: 12 июл 2007, 15:19
Откуда: Екатеринбург
Контактная информация:

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

Сообщение MYriad » 22 май 2011, 13:23

Вот довелось мне и в этой ветке форума побывать...

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

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

У кого какие идеи есть, поделитесь, пожалуйста.
Изображение

Аватара пользователя
0xFF
entity
Сообщения: 5310
Зарегистрирован: 22 июн 2006, 09:15
Контактная информация:

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

Сообщение 0xFF » 27 май 2011, 06:33

MYriad
Путь в никуда.

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

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

Плюс порыть на предмет граф. библиотеки под dos.
Три пути ведут к знанию: путь размышления - это путь самый благородный, путь подражания - это путь самый легкий и путь опыта - это путь самый горький. - Конфуций

Ответить