![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Стычки между ботами. Glscene [Delphi]
Trof © (2005-04-23 12:04:00)Использую Glactor и загружаю его из smd, нужно чтобы когда actor подходит к какому-то персонажу грузится анимация атаки (мечом) и
когда текущий фрайм = последнему, то у того персонажа отбираются жизни.
procedure Tlifeobject.attack(obj : tglbasesceneobject);Всю эту процедуру я пихаю в Cadencer, но вот в чём проблема - у obj никогда не отбирается ровно 10 жизней а почему-то иногда 20,30 или даже 50. В чём проблема?
var
sdf: TAffineVector;
begin
with form1 do begin
button1.Caption:=self.Parent.Name;
if distanceto(obj) < 10 then begin
if baseAnimation<>'attack' then begin
baseAnimation:='attack';
SwitchToAnimation(baseAnimation,true);
SetStartFrame(1);
setendframe(100);
end;
self.Parent.PointTo(obj,NULLHmgVector);
if CurrentFrame=endframe then begin
obj.life:=obj.life-10;
end;
end else begin
if baseAnimation<>'walk' then begin
baseAnimation:='walk';
SwitchToAnimation(baseAnimation,true);
end;
self.Parent.PointTo(obj,yHmgVector);
sdf[2]:=100;
GetOrCreateDCEDynamic(self.Parent).ApplyAccel(sdf);
end;
end;
end;
Trof (2005-04-23 15:42:00) [1]Всё я понял -
if CurrentFrame=endframe then begin
obj.life:=obj.life-10;
CurrentFrame:=1;
end;
DeadMeat (2005-04-23 13:14:00) [2]Во первых - отформатируй код нормально.. А невозможно читать..
Во вторых - попробуй вif CurrentFrame=endframe then beginостанавливать анимацию.. Резко и сразу. И смотри что это была за анимация по имени.
Может так поможет... Но не уверен.
---
...Death Is Only The Begining...