![]() |
![]() ![]() |
![]() |
n00b |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: ![]() ![]() ![]() |
Подскажите как работать с графикой, например перемещение картинки по экрану. Я вижу это так:
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); но в таком случае нужно "затереть" те точки на, которых была картинка, точками фона. Сам понимаю что это очень примитивно, по этому и обращаюсь к Вам за помощью. |
Гость |
![]()
Сообщение
#2
|
Гость ![]() |
Лично я так всегда делаю: затираю предыдущую картинку и рисую новую, другого способа я не знаю.
Впринципи можно не затирать предыдущую картинку а просто очищать экран, но в итоге смысл не меняеться. |
CMOS |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
PutPixel - забудь навсегда. Не созданно таких компьютеров, к-рые смогли бы потянуть несколько таких спрайтов в реал-тайм.
Изучи спрайты Выводи картинки не по-пиксельно, а куском памяти рисовать-затирать - для одного спрайта пойдет. А для 50? Изучай двойную буферизацию. Кстати, у модуля graph с этим проблемы выглидит это примерно так: одну экран показываешь, на другом рисуешь: очистка выводишь фон(тоже спрайт) далее остальные спрайты Меняешь их местами. SetActivePage, SetVisiblePage помойму так |
andriano |
![]()
Сообщение
#4
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Прямо в этом разделе в ссылках привеены адреса, где все это подробно описано.
|
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 13:30 |