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

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

Пароль



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

Забыли пароль?
Запросите новый здесь.
Темы форума
195 - @
Вчера, 22:26
 Mefistofel
195 - ?
7.10.2026
 PapkaI_Igrodel
194 - Numbers go brr…
20.09.2026
 PapkaI_Igrodel
Будущее IGDC
6.09.2026
 IAmNotARobot
194 - ?
27.08.2026
 PapkaI_Igrodel
193 - Bullet Heaven…
23.06.2026
 Dan
.ruby
9.06.2026
 stom
193 - ?
29.05.2026
 Piroxyline
192 - Lords of the B…
10.05.2026
 Mefistofel
Архив Neuh
6.04.2026
 PapkaI_Igrodel
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

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

Опубликовано 08.02.2011 16:37 (16 лет назад)    #
Доброго времени суток! =)
Помогите плз, как сделать анимацию с использованием готовой маски(пока так). Я не знаком с Буффером,к моему сожалению. Вот ,что нашел чтобы просто использовать маску т.е. то что я знаю на счет этого.
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

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

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

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

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

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

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

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

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

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

Старт: 9 октября 2026г.
Финиш: 26 октября 2026г.

Участники: 4
Недавние конкурсы:
 №194 - Numbers go brrr
 №193 - Bullet Heaven II
 №192 - Lords of the Board
 №191 - RPG XIIII
 №190 - Horror
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

30,899,649 уникальных посетителей

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