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

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

Форум «Всё о Паскале» _ Теоретические вопросы _ пустой пиксель

Автор: grinch 18.10.2008 1:18

Здраствуйте, очень надеюсь, на вашу помощь. А теперь к делу.

Я пишу на Pascal'е игрушку, и у меня там много всяких рисунков (домики, юниты, и др.). Рисовать их всех через функции модуля Graph - это самоубийство. Требовалось загружать картинки из отдельных файлов. Я нашел и сделал модуль для этого, тут проблем теперь нет, но появилась другая. Дело в том, что у меня часть картинок являются "сетчатыми", т.е. в некоторых местах в них находятся "дырки" и видно то, что под ними. При рисовании через line, bar и putpixel этих проблем не было, ибо рисовал только те точки, которые были нужны, но теперь с этим есть проблема, т.к. в *.bmp сделать подобную "дырку" нелья.

Я так понимаю, что есть возможность делать конкретный цвет на картинке прозрачным, т.е. все пиксели этого цвета становятся прозрачными, и видно то, что под ними.

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

Заранее благодарен, Григорий.

Автор: SKVOZNJAK 22.10.2008 21:31

Добавь в свой модуль переменную, скажем Cvet0. Ты в модуле графику строчками рисуешь? Если да, то всё просто. Добавь фичу не рисовать точку или линию, что там у тебя, если её цвет равен содержимому Cvet0. Прозрачные области в рисунке закрась любым ненужным тебе цветом, а когда картинку нужно будет вывести на экран, вначале запиши номер цвета в переменную Cvet0. Если прозрачных цветов нет, запиши в Cvet0 число большее чем у цвета с самым большим номером.