![]() |
![]() |
Masacre Ant |
![]()
Сообщение
#1
|
Гость ![]() |
Каким образом можно в программу на Паскале засунуть картинку?
И в каком формате она должна быть? Сомневаюсь, что можно просто нарисовать в Paint'е цветной кубик и всунуть его например коммандой LoadImage('kubic.bmp')... Это же ведь не так делается, может кто нить мне поможет, и объяснит на простеньком примере: ----------------------------------------------------------------------------------------------- -Где надо рисовать картинку? ![]() -Как ее отобразить на экране с помощью Pascal(что для этого нужно?), а еще лучше: -Как ее еще потом подвигать туда сюда, хотя бы просто без участия юзера(тобишь не управляя с клавы...)? Помогите ПЛЗ!!! :molitva: |
![]() ![]() |
Бродяжник |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если речь идет о стандартных GetImage и PutImage, то если в GetImage при каждом вызове указывать одну и ту же переменную, в которую мы сохраняем картинку, то, конечно же, хранится будет только одна, последняя из сохраненных картинок. Под каждый спрайт, который мы хотим хранить, нужно выделить отдельную переменную. По поводу перемещения картинок по фону: юзая Graph.TPU, лично я не нашел ничего лучшего, чем проделывать следующую последовательность шагов:
1. Сохранять участок экрана в месте вывода спрайта (GetImage) 2. Выводить подложку под спрайт - маску спрайта, где прозрачный цвет заменен черным, а любой непрозрачный цвет - белым. При этом выводить ее нужно в режиме ORPUT. В итоге, там где должен будет выводится спрайт, появится его белый контур, а фон не изменится. 3. Выводить сам спрайт поверх подложки; при этом прозрачный цвет нужно заменить белым, и выводить спрайт в режиме ANDPUT. В итоге сквозь белый цвет спрайта пробьется фон, а на белом фоне подложки отобразится сам спрайт. 4. После временной задержки восстанавливаем сохраненный участок экрана. Для реализации сей схемы я делал так: 1. Рисовал спрайт в своем пиксельном редакторе. При этом какой-то один цвет объявлялся прозрачным. 2. Этот спрайт обрабатывался программкой, которой генерила два новых спрайта: один - спрайт подложки, заменяя прозрачный цвет черным, а все остальные - белым, и "верхний" спрайт, заменяя прозрачный цвет белым. Работать это работает, но, вообще-то, BGI - жутко тормозная вещь. Стоило бы написать что-то свое, нормальное, быстрое... но я этого не потяну. Да и зачем, если есть ОпенГЛ? |
![]() ![]() |
![]() |
Текстовая версия | 7.08.2025 20:41 |