Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
191 - RPG XIII
Сегодня, 10:21
 PapkaI_Igrodel
191 - ?
30.01.2026
 Mefistofel
Создание игровых рес…
26.01.2026
 Darthman
Итоги 2025 года
21.01.2026
 kott
190 - Horror
14.01.2026
 Mefistofel
190 - ?
5.12.2025
 Erewego
Будущее IGDC
16.11.2025
 kott
Форумный квест IGDC
8.11.2025
 IAmNotARobot
189 - Race V
4.08.2025
 IAmNotARobot
Разрешите представит…
6.07.2025
 BlitzID
Сейчас на сайте
Гостей: 3


Пользователей: 1,793
новичок: Fraddy
Обсуждение «Анимация»
Cocucka
Avatar пользователя

Опубликовано 08.02.2011 16:37 (15 лет назад)    #
Доброго времени суток! =)
Помогите плз, как сделать анимацию с использованием готовой маски(пока так). Я не знаком с Буффером,к моему сожалению. Вот ,что нашел чтобы просто использовать маску т.е. то что я знаю на счет этого.
var
Form1: TForm1;
Wizard,// Спрайт
WizardMask,// Маска спрайта
Buffer,// Буфер
Flur:Tbitmap;// фоновый рисунок
WizardX,WizardY:integer; // начальные координаты волшебника

procedure TForm1.FormCreate(Sender: TObject);
begin
Wizard:=Tbitmap.Create;
Wizard.Loadfromfile('1картинка.bmp');
WizardMask:=Tbitmap.Create;
WizardMask.Loadfromfile('2картинка.bmp');
Flur:=Tbitmap.Create;
Flur.Loadfromfile('flur.bmp');
Buffer:=Tbitmap.Create;
Buffer.Height:=320; // у буфера нужно задать размер
Buffer.Width:=320;
WizardX:=135;
WizardY:=135;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
// Копируем подложку
BitBlt(Buffer.Canvas.Handle,0,0,320,320,Flur.Canvas.Handle,0,0,SRCCOPY);
// Копируем маску
BitBlt(Buffer.Canvas.Handle,WizardX,WizardY,57,57, WizardMask.Canvas.Handle,0,0,SrcPaint);
// Копируем спрайт
BitBlt(Buffer.Canvas.Handle,WizardX,WizardY,57,57, Wizard.Canvas.Handle,0,0,SrcAnd);
// Копируем буфер на экран
BitBlt(Form1.Canvas.Handle,0,0,320,320,Buffer.Canvas.Handle,0,0,SRCCOPY);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
WizardX:=X-28; WizardY:=Y-28;
end;

редакция от Cocucka, 08.02.2011 16:38

RPG XIIII:Не участвую.
Shirson
Avatar пользователя

Опубликовано 08.02.2011 23:44 (15 лет назад)    #
Использование маски с какой целью требуется?
RPG XIIII:Не участвую.
Cocucka
Avatar пользователя

Опубликовано 09.02.2011 04:56 (15 лет назад)    #
Ну прозрачность некоторых областей картинки.
RPG XIIII:Не участвую.
Romikon
Avatar пользователя

Опубликовано 09.02.2011 19:57 (15 лет назад)    #
Я вообще проблемы не понимаю, анимация это же просто. Главное знать размеры одного кадра анимации и при рисовании выводить не всё изображение, а только лишь его часть.
RPG XIIII:Не участвую.
Shirson
Avatar пользователя

Опубликовано 10.02.2011 04:07 (15 лет назад)    #
SoRDeLKa написал:
Ну прозрачность некоторых областей картинки.

Что мешает этого можно добиться используя прозрачность на самой картинке? Т.е. те области, которые должны быть прозрачными, рисовать определённым цветом и назначать его как прозрачный.
RPG XIIII:Не участвую.
Cocucka
Avatar пользователя

Опубликовано 10.02.2011 10:33 (15 лет назад)    #
назначать его как прозрачный

Вот, как это сделать?
RPG XIIII:Не участвую.
Darthman
Древний организм
Avatar пользователя

Опубликовано 10.02.2011 11:10 (15 лет назад)    #
maskblt?
RPG XIIII:Не участвую.
Перейти на форум:
Конкурсы
Открытые конкурсы:
RPG XIIII

Старт: 31 января 2026г.
Финиш: 16 февраля 2026г.

Участники: 5
Недавние конкурсы:
 190 - Horror
 189 - Race V
 188 - RPG XIII
 187 - Bullet Heaven
 186 - Strategy
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

28,053,143 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.