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