Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Анимированный персонаж. [Delphi, Windows]


Zak3D[@Tm] ©   (2004-06-17 20:51:00) 

Всем привет.
Вот у меня какая к вам просьба, нет ли у кого небудь маленокого примерчика или так можь кто напишет(но тогда поподробней), как сделать анимированного персонажа. Вот нажал я влево, у меня одна намация проигрывается, нажал вправо, другая, но только без Имадж листов и прочего, а что бы изображения в массивах хранились.
Заранее всем большое пасиба.


OSokin   (2004-07-03 17:29:00) [1]

Извини, не рассмотрел насчет имеджлистов. Кстати, они сами - компонентное воплощение массивов, состоящих из изображений (если не компонентносмотреть на это, то они типа этого:

type
 TImageList:array of TImage

)


OSokin   (2004-07-02 17:19:00) [2]

Да есть, есть...


Proger   (2004-06-26 18:51:00) [3]

Мне кажется массив всётаки лучше, imho там все картинки уже
разрезанные и нужного размера.


Zak3D[@Tm]   (2004-06-25 22:08:00) [4]

Честно сказать не нащёл такого примера (Sample75)


OSokin   (2004-06-25 21:00:00) [5]

Посмотри на DelphiGFX. Там Sample75.


nexxiss   (2004-06-17 22:56:00) [6]

>for i:=0 to 2 do im[0,i].LoadFromFile('left'+inttostr(i)+'.bmp');
Так не совсем хорошо будет.
Проще будет, если все картинки персонажа будут на одной БМП, тогда нужный фрагмент вытаскиваешь и выводишь куда надо. Обычный блитинг.


Drinkins   (2004-06-17 21:43:00) [7]

На твоем месте я бы попробовал что нить типа
т.е хранить битмапы, кадры менять по таймеру, а номера анимаций менять с клавы.

var im: array[0..1,0..2]of TBItmap;
   u,t: integer;

procedure TForm1.FormCreate(Sender: TObject);
var i,j: integer;
begin
u:=0;
for i:=0 to 1 do
for j:=0 to 2 do begin
 im[i,j]:=TBitmap.Create();
end;
for i:=0 to 2 do im[0,i].LoadFromFile('left'+inttostr(i)+'.bmp');
for i:=0 to 2 do im[1,i].LoadFromFile('right'+inttostr(i)+'.bmp');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(t);
if t>2 then t:=0;
Image1.Canvas.Draw(0,0, im[u,t]);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
case Key of
VK_LEFT: u:=0;
VK_RIGHT: u:=1;
end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо