Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DelphiX - Beim klick auf DXDraw soll das Sprite erkannt werd (https://www.delphipraxis.net/28856-delphix-beim-klick-auf-dxdraw-soll-das-sprite-erkannt-werd.html)

Die Muhkuh 31. Aug 2004 12:36


DelphiX - Beim klick auf DXDraw soll das Sprite erkannt werd
 
Hi,

wie bekomm ich es hin, wenn man auf ein Sprite klickt, dass es erkannt wird und ein Text ausgegeben wird.

Ich stell mir das mal so vor:

Delphi-Quellcode:
if sprite is TGegenstand then ShowMessage('Das ist ein Gegenstand');
Das Problem ist nur, ich weiß nicht wie ich bestimme auf welches sprite ich geklickt habe.

Nightshade 31. Aug 2004 13:05

Re: DelphiX - Beim klick auf DXDraw soll das Sprite erkannt
 
Benutz als Mauszeiger auch ein Sprite
und dann benutz die Kollisionsabfrage.

Die Muhkuh 31. Aug 2004 17:03

Re: DelphiX - Beim klick auf DXDraw soll das Sprite erkannt
 
Hi,

gibts da keine bessere lösung?

Werd mir deine auf jedenfall mal anschauen^^.

[edit] Ausserdem soll etwas ja erst beim klicken angezeigt werden, nicht wenn der Mauszeiger drüber ist ;) [/edit]

dizzy 31. Aug 2004 17:13

Re: DelphiX - Beim klick auf DXDraw soll das Sprite erkannt
 
:?: Wo ist das Problem? Bei der Kollision immer das aktuell kollidierende Sprite merken, und halt erst OnClick reagieren.
Nicht ganz so elegant wäre eine Lösung über die Mauskoordinaten. Dann kennst du ja auch die Sprite-Koords, und kannst z.B. das Rechteck um das Sprite als gültig an sehen, und darauf hin die Koordinaten untersuchen.
Aber mit der Kollision das klingt für mich erstmal recht gut :)
(Hab aber, das muss ich zugeben, noch nix wirklich mit DirectX gemacht...)

gruss,
dizzy

Die Muhkuh 31. Aug 2004 17:47

Re: DelphiX - Beim klick auf DXDraw soll das Sprite erkannt
 
Nunja, ich guck mal was sich machen lässt ;)

Die Muhkuh 31. Aug 2004 18:04

Re: DelphiX - Beim klick auf DXDraw soll das Sprite erkannt
 
Hi,

habs grad so probiert und es auch einigermaßen hinbekommen. Aber die möglich gefällt mir gar nicht. Es MUSS doch noch eine andere möglichkeit geben oder?

Die Muhkuh 31. Aug 2004 18:08

Re: DelphiX - Beim klick auf DXDraw soll das Sprite erkannt
 
Hi,

hab die andere möglichkeit gefunden:

Delphi-Quellcode:
var
  Sprite: TSprite;
begin
  Sprite := SpriteEngine.Engine.GetSpriteAt(X, Y);

  if Sprite is TGold then
    mmInfo.Text := TGold(Sprite).GetInfoText
  else
  if Sprite is TWasser then
    mmInfo.Text := TWasser(Sprite).GetInfoText
  else
    mmInfo.Text := '';
Im OnMouseDown event!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 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