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

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

Пароль



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

Забыли пароль?
Запросите новый здесь.
Темы форума
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
TESTAMENT - Тактичес…
15.11.2023
 KregHek
WoL
13.10.2023
 Darthman
RES - Движок для пик…
27.09.2023
 rimush
177 - One Button Str…
20.09.2023
 VoroneTZ
JS 13k contest
13.09.2023
 Mefistofel
184 - Arcade II
14.08.2023
 tiger1025
184 - ?
14.07.2023
 Kaps
Сейчас на сайте
Гостей: 1
На сайте нет зарегистрированных пользователей

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

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

Shirson
Avatar пользователя

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

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

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

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

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

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

Вот, как это сделать?
Darthman
Древний организм
Avatar пользователя

Опубликовано 10.02.2011 11:10 (13 лет назад)    #
maskblt?
Перейти на форум:
Конкурсы
Открытые конкурсы:
Активных нет
Недавние конкурсы:
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 181 - Pixel Craft 128
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

25,342,332 уникальных посетителей

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