Guten Abend liebe Delphi-Gemeinde,
ich beschäftige mich seit einer Woche mit Andorra 2D und wollte jetzt eine Figur über die Pfeiltasten steuern. Jetzt habe ich das Problem, jedes mal wenn ich die entsprechende Pfeiltaste drücke, bekomme ich eine neue Figur erstellt, ich hätte aber gerne, dass die Figur die Richtung ändert.
Hier der entsprechende Quelltext:
Delphi-Quellcode:
type
Tcroco = class(TImageSprite)
private
protected
procedure DoMove(TimeGap:double);override;
public
XSpeed:integer; //Die Geschwindigkeit in X-Richtung
constructor Create(AParent:TSprite);override;
procedure GoRight(Adspriteengine:TSpriteEngine; bild:TAdImageList);
procedure GoLeft(Adspriteengine:TSpriteEngine; bild:TAdImageList);
procedure SetLine;
end;
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
VK_LEFT:croco.goLeft(Adspriteengine, bild);
VK_RIGHT:croco.goRight(Adspriteengine, bild);
end;
end;
procedure Tcroco.GoRight(Adspriteengine:TSpriteEngine; bild:TAdImageList);
begin
inherited;
with Tcroco.create(AdSpriteEngine) do
begin
Image:=bild.Find('croco');
X:=X + 0.4;
AnimStart:=1;
AnimStop :=2;
AnimLoop:=true;
AnimActive:=true;
AnimSpeed:=30;
XSpeed := -(random(100)+50);
SetLine;
end;
end;
procedure Tcroco.GoLeft(Adspriteengine:TSpriteEngine; bild:TAdImageList);
begin
inherited;
with Tcroco.Create(AdSpriteEngine) do
begin
Image:=bild.Find('croco');
X:=X + 0.4;
AnimStart:=1;
AnimStop :=2;
AnimLoop:=true;
AnimActive:=true;
AnimSpeed:=30;
XSpeed := (random(100)+50);
SetLine;
end;
end;
wenn ich in der Zeile mit
with Tcroco.Create(AdSpriteEngine) do
das create weglasse bekomme ich eine Fehlermeldung "Es ist eine
Exception der Fehlerklasse EAccess Violation aufgetreten".
Kann mir vielleicht irgendjemand bei meinem Problem helfen?
Vielen Dank.
Lg garfield.92