Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Работа с графикой

Автор: n00b 5.07.2008 18:14

Подскажите как работать с графикой, например перемещение картинки по экрану. Я вижу это так:

assign (f,'file');
reset(f);

//загрузка картинки в матрицу
for y:=1 to 50 do
for x:=1 to 50 do
read (f, color);
mas (x,y):=color;

//вывод картинки на экран
for y:=1 to 50 do
for x:=1 to 50 do
PutPixel (x,y,color);

но в таком случае нужно "затереть" те точки на, которых была картинка, точками фона. Сам понимаю что это очень примитивно, по этому и обращаюсь к Вам за помощью.

Автор: Гость 13.07.2008 15:04

Лично я так всегда делаю: затираю предыдущую картинку и рисую новую, другого способа я не знаю.
Впринципи можно не затирать предыдущую картинку а просто очищать экран, но в итоге смысл не меняеться.

Автор: CMOS 18.07.2008 23:47

PutPixel - забудь навсегда. Не созданно таких компьютеров, к-рые смогли бы потянуть несколько таких спрайтов в реал-тайм.
Изучи спрайты
Выводи картинки не по-пиксельно, а куском памяти
рисовать-затирать - для одного спрайта пойдет. А для 50?
Изучай двойную буферизацию. Кстати, у модуля graph с этим проблемы

выглидит это примерно так:
одну экран показываешь, на другом рисуешь:
очистка
выводишь фон(тоже спрайт)
далее остальные спрайты
Меняешь их местами.

SetActivePage, SetVisiblePage
помойму так

Автор: andriano 27.07.2008 2:48

Прямо в этом разделе в ссылках привеены адреса, где все это подробно описано.