Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа со спрайтами, вопрос новичка 
:(
    Опции темы
СЭНСЭЙ
Дата 30.4.2009, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Наткнулся в инете на такой сайт по работе со спрайтами:
http://www.codenet.ru/progr/delphi/sprites/
вобщем ключевой код, которым я воспользовался такой:
Код

var
Wizard, WizardMask,Buffer:Tbitmap;
X,Y:integer;
...
Wizard:=Tbitmap.Create;
Wizard.Loadfromfile('spr1.bmp');
WizardMask:=Tbitmap.Create;
WizardMask.Loadfromfile('spr2.bmp');
// Копируем маску в буфер BitBlt(Buffer.Canvas.Handle,X,Y,50,50,
Buffer:=Tbitmap.Create; :

WizardMask.Canvas.Handle,0,0,SrcPaint);
// Копируем спрайт в буфер
BitBlt(Buffer.Canvas.Handle,X,Y,50,50, Wizard.Canvas.Handle,0,0,SrcAnd);
...
// Перемещаем буфер на форму BitBlt(Form1.Canvas.Handle,0,0,320,240,
// Buffer.Canvas.Handle,0,0,SrcCopy);


мне не понятно одно - зачем копировать маску?
ведь все равно изображение спрайта на белом фоне копирутся на фон без белых пикселей?
PM MAIL   Вверх
~FoX~
Дата 2.5.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 2
Всего: 68



СЭНСЭЙ, Читаем про битовые операции.......
Есть некий ДЦ, предположим он с собственным фоном...., есть изображение бублика, и ты хочешь нарисовать его с дыркой по середине на фоне этого самого ДЦ.....что бы вычислить где действительно есть дырка используется "маска", все чо не есть прозрачным на маске обозначается как занятый бит...Т.е. черный....в зависимости от того какие операции (or, xor, and, etc...) ты производишь с ДЦ, изображением и маской, получаешь разные эффекты - дырку в бублике, бублик вокруг дырки или таблетку, которая на самом деле дырка....

если есть желание разобраться подробнее долби в аську 175122537....буквально месяца три назад писал клиенту "помощника" для проекта....

Это сообщение отредактировал(а) ~FoX~ - 2.5.2009, 09:39


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
AntonN
Дата 2.5.2009, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 7
Всего: 18



имхо, приведенный выше способ не есть подходящий для игр, совершенно. Приблизительно при той же скорости можно выводить попиксельно через сканлайн с битмапа на битмап, при любом "прозрачном" цвете, при этом прикрутить свои эффекты (например полупрозрачный спрайт с "прозрачным" светом).
как пример могу предложить пару игрушек отсюда (Star Scroller, Battle Scroller и Defence II):
http://desksoft.ru/index.php?files&id=3&owner=3


--------------------
user posted image
PM MAIL WWW   Вверх
~FoX~
Дата 3.5.2009, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 2
Всего: 68



AntonN, А он про игры и не говорил ничего, а если уж разговор про игры зашел, то GDI+ в руки и писать.....А еще лучше OpenGL или DX

Это сообщение отредактировал(а) ~FoX~ - 3.5.2009, 08:26


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
AntonN
Дата 3.5.2009, 21:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 7
Всего: 18



~FoX~, статью видел?
если дело дошло, можно и без GDI+.
для большинства простых 2d игр достаточно ГДИ, DX и OGL не нужен.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.