AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!!!
Thema durchsuchen
Ansicht
Themen-Optionen

DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!!!

Ein Thema von ISAS · begonnen am 5. Mär 2004 · letzter Beitrag vom 10. Mär 2004
Antwort Antwort
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#1

DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!!!

  Alt 5. Mär 2004, 17:28
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!
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#2

Re: DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!

  Alt 5. Mär 2004, 19:14
PS: Habs auch schon mit einem dynamischen array versucht:

Delphi-Quellcode:
  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.
Aber er hat mir als Pushable[i].Y jedesmal (3mal) den Wert 0 zurückgegeben
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#3

Re: DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!

  Alt 8. Mär 2004, 19:23
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!
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#4

Re: DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!

  Alt 9. Mär 2004, 10:16
Wenn man das so liest, dann könnte man denken, ich beschäftige mich mit diesem Thread selber . Ist nicht im negativen Sinn gemeint , 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.

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.

Thnx, ISAS!
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#5

Re: DelphiX -> TObjekt und DXDraw1MouseDown -> Fehler!

  Alt 10. Mär 2004, 11:30
Habs!!!
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz