Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Strategiespiel und DelphiX und OnMouseDown -> Fehler (https://www.delphipraxis.net/23077-strategiespiel-und-delphix-und-onmousedown-fehler.html)

ISAS 28. Mai 2004 13:37


Strategiespiel und DelphiX und OnMouseDown -> Fehler
 
Wie man unschwer erraten kann, arbeite ich gerade an einem Strategiespiel wie Age of Empires.

Mein Problem liegt darin, dass Delphi eine Fehlermeldung gibt, wenn ich auf die DXDrawfläche klicke. Habe ein Sprite und wenn ich auf das klicke, dann soll es zB. makiert werden. Funktioniert.

Doch wenn es das Sprite 2 mal auf der Fläche gibt, dann erscheint eine Fehlermeldung. zB: 2 Soldaten (Soldat:TSoldat). Jeder Soldat hat eine eigene X und Y Koordinate, aber dieselben Eigenschaften. Sie erscheint aber nur daher, weil es If-Bedingungen sind, die im OnMouseDown drin sind.
Delphi-Quellcode:
if X=Soldat.X then begin
Da es 2 X Koordinaten für die Soldaten gibt, kommt diese Meldung. Wie kann ich das beheben.



PS: Bei DXInput gibs ja auch was mit Maus. Kann man das vielleicht mit dem beheben?
PSS: Mit arrays will ich das nicht machen, da es sehr kompliziert wird. (Soldat[1], Soldat[2]) usw.)
Am Anfang gibs nicht die volle array-Zahl von Soldaten. Dann sterben Soldaten und im Array sind freie Stellen. Will nicht mehr aufzählen, aber da gibt es noch genug andere Probleme.


Edit: Das wäre mein einziges Problem, das mich an dem Fertigstellen hindern würde. Für all das andere habe ich eine Lösung.

Jörn 28. Mai 2004 15:38

Re: Strategiespiel und DelphiX und OnMouseDown -> Fehler
 
Erstmal: machst du eine isometrische Engine? Da müsstest du dir dann auch noch Gedanken machen die Koordinaten umzurechnen. Auf jeden Fall kann die Zeile die du gepostet hast so nicht ganz stimmen. So wäre die Spielwelt ja nur einen Bildschirm groß. Wahrscheinlich arbeitest du mit einem Offset. Da wäre die angeklickte Position auf der Karte offsetx+x_auf_dem_Bildschirm/offsety+y_auf_dem_Bildschirm. Dann kannst du ja die Position berechnen, auf welche Einheit geklickt wurde

ISAS 28. Mai 2004 19:52

Re: Strategiespiel und DelphiX und OnMouseDown -> Fehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das mit dem bewegen is ein bisschen schwer zu erklären. Ich klick auf die DXDrawfläche und er geht mir dorthin. Auch wenn ich scrolle. Wenn ich scrolle, dann verändern sich halt alle Positionen. Aber das scrollen is nicht mein Problem. Das "vererben" is es:

1 Sprite bestehend aus mehreren Bildern (bei meinem Bsp Küken :wink: ) die in einer OnMouseDown procedur drinnen sind und die X und Y Koordinaten der Maus werden mit denen von den Küken verglichen.

PS: Frage?: Wie kann man eine Animation mittendrin stoppen. Dazu noch herauszufinden, welches Bild das ist??? :?:


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