Wie gesagt habe ich ein Problem mit TPushable und DXDraw1MouseDown:
Zuerst mal TPushable:
Delphi-Quellcode:
TPushable = class(TImageSprite)
Public
Constructor Create(aparent:Tsprite);override;
Procedure DoMove(MoveCount: Integer);override;
end;
var
Pushable:TPushable;
Delphi-Quellcode:
constructor TPushable.Create(AParent: TSprite );
begin
inherited Create(AParent);
Image:=Form1.DXImageList1.Items[16];
Width := Image.Width;
Height := Image. Height;
{X:=180;
Y:=160;} //Koordinaten werden später zugeordnet
end;
{OnCreate}
Delphi-Quellcode:
With TPushable.Create(DXSpriteEngine1.Engine) do
Begin
if typ=11 then begin
Image:=Form1.DXImageList1.Items[16];
X:=strtoint(t)*32-32;
Y:=strtoint(s)*32-32;
end;
end;
Hier wurden nun alle TPushable-Objekte erstellt. Es gibt mehrere davon, haben aber alle dieselben Eigenschaften.
Delphi-Quellcode:
procedure TForm1.DXDraw1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (Player.X>=Pushable.X-32) and (Player.X<=Pushable.X+32) then begin...
Und hier ist nun mein Problem. Da Pushable mehrere Bilder hat und so auch mehrere X und Y Kordinaten, gibt es einen Fehler bei Pushable.X
Ich will nun, dass der folgende Befehl nur mit dem Pushable ausgeführt wird, auf den man auch klickt. Trotzdem soll es mehrere Objekte vom typ TPushable geben, da ja mehrere dieselben Eigenschaften haben, aber unterschiedliche Koordinaten.
Danke, ISAS!