Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с графикой
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
n00b
Подскажите как работать с графикой, например перемещение картинки по экрану. Я вижу это так:

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);

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

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

SetActivePage, SetVisiblePage
помойму так
andriano
Прямо в этом разделе в ссылках привеены адреса, где все это подробно описано.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.