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