![]() |
DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!!!
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:
Hier wurden nun alle TPushable-Objekte erstellt. Es gibt mehrere davon, haben aber alle dieselben Eigenschaften.
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;
Delphi-Quellcode:
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
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... 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! :wink: |
Re: DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!
PS: Habs auch schon mit einem dynamischen array versucht:
Delphi-Quellcode:
Aber er hat mir als Pushable[i].Y jedesmal (3mal) den Wert 0 zurückgegeben
TPushable = class(TImageSprite)
Public Constructor Create(aparent:Tsprite);override; end; var Form1: TForm1; Pushable:array of TPushable; implementation {$R *.DFM} constructor TPushable.Create(AParent: TSprite ); begin inherited Create(AParent); Image:=Form1.DXImageList1.Items[0]; Width := Image.Width; Height := Image. Height; end; procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin SetLength(Pushable,3); for i:= 0 to 2 do begin With TPushable.Create(DXSpriteEngine1.Engine) do Begin Pushable[i] := TPushable.Create( DXSpriteEngine1.Engine ); X:=i*32; Y:=i*32; end; end; end; procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer); begin dxspriteengine1.Move(1); dxspriteengine1.Dead; dxspriteengine1.Draw; DXdraw1.Flip; end; procedure TForm1.DXDraw1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i:integer; begin for i:= 0 to 2 do begin if (X>Pushable[i].X) and (X<Pushable[i].X+32) then begin if (Y>Pushable[i].Y) and (Y<Pushable[i].Y+32) then begin showmessage(floattostr(Pushable[i].X)); end; end; end; end; end. |
Re: DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!
Hab nun versucht, ein Sprite zu der "Maus" machen. Halt so, das Der Sprite die X und Y Koordinaten der Maus hat und dann mit if (Sprite = Maus) then begin (Sprite = TPushable) weiterzumachen. Aber das mit der Maus funktioniert nicht. Es kommt immer wieder der gleiche Fehler. Könnte ich die Maus nicht mit DXInput machen. Bei mir is sie nämlich OnMouseDown. Schade, dass mir noch keiner Helfen konnte. Wenn der Quellcode erforderlich ist, dann poste ich ihn sicher, aber ich glaube eher nicht.
Danke, ISAS! |
Re: DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!
Wenn man das so liest, dann könnte man denken, ich beschäftige mich mit diesem Thread selber :( . Ist nicht im negativen Sinn gemeint :wink: , weil ich ja Antwortmöglichkeiten geschildert und ausgeführt habe, die LEIDER zu KEINem ERFOLG geführt haben.
Hab viele Sachen versucht, doch nichts hat funktioniert. Das Problem liegt sicher darin, dass ich mehrere TPushables kreiere. :idea: Versuche das nun so, indem ich eine DoCollision in TPushable zufüge und mich dann ein bisschen mit den Mauskoordinaten spiele. Hoffe, dass das nun funktioniert. Wenn ich das nun versucht habe, dann berichte ich nochmal und natürlich freue ich mich auch auf Lösungsvorschläge. :coder: Thnx, ISAS! |
Re: DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!
Habs!!! :wink: :coder: :hello: :spin2: :dance:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz