Entwickler-Ecke
Multimedia / Grafik - Grafiken in DXDraw "anklicken"
Elayla - Di 17.06.03 21:12
Titel: Grafiken in DXDraw "anklicken"
Ich hab jetzt eine Version eines Testspiels in dem eine Karte erzeugt wird und man Häuser bauen (platzieren) kann an jedem Punkt des Spielfeldes.
Die Häsuer werden per
| Zitat: |
| ImageList1.Items[8].Draw(...) |
eingefügt.
Jetzt meine Frage, wie schreibt man am besten eine Prozedur bei dem man diese Gebäude anklicken kann und man so z.B. Informationen über das Haus erhält (Die Infos mal am Rande)
ImageList1.Items[8].OnClick geht ja nicht *gg* (schade eigentlich :P )
Man kann das ja machen indem man abfragt ob die Maus in irgendeinem Bereich in dem das Haus gezeichnet wurde geklickt hat, aber das wird bei 20 oder mehr Häuser ja umständlich.
Gibts da ne bessere Lösung oder kann ich es nur über die Koordinatenabfrage er Region um das Haus machen?
mimi - Di 17.06.03 22:02
verwendes du gleichgroße objekte ?
z.b. in einem raster(2D array)
es gibt aber dafür DxDraw1.Onclick:)
Elayla - Di 17.06.03 22:08
Jain, die Kartenfetzen sind je 40x40px aber die Gebäude 90x90px und die sitzen nicht fest, sondern können vom User frei gesetzt werden.
Das heißt ich kann es mit meinen Kenntnissen und über ne Kontrolle der Region um das Bildzentrum machen (is ja auch kein Problem, nur umständlich)
mimi - Di 17.06.03 22:16
ech umstädnlich:)
schade, sonst hätte ich dir schon weiterhelfen können :(
Elayla - Di 17.06.03 22:30
Naja macht nix, ich muss ja sowieso ne Abfrage einbauen ob das Gebäude schon gebaut wurde, sonst braucht er ja auch nicht kontrollieren ob ich das Gebäude angeklickt habe ^^
Da_Knuddelbaer - Mi 18.06.03 10:27
Sag mal... wieso progst du nicht einfach obejktorientiert mit Klassen, da ersparst du dir echt einiges an Arbeit *g*
Greetz,
Knuddelbaer
Elayla - Mi 18.06.03 16:21
Würde ich, aber ich geb zu das ich nicht/kaum OOP kann :oops:
Kennst du ein gutes Tutorial das als guter Einstieg dient?
mimi - Mi 18.06.03 17:19
aber da ist das doch genauso schwer ?
mach mal ein beispiel wie du sowas machen würdes mit oop
Elayla - Mi 18.06.03 17:55
ok ich könnte ein Object machen das die Eigenschaften von TForm erbt, dann hätte ich OnClick ...
Aber wie kann ich dann kontrollieren ob das Bild vom Gebäude angeklickt wird wenn ich es per ImageList1.Items[x].Draw ... zeichne?
mimi - Mi 18.06.03 18:18
genau das ist der punk, also ist oop hier garnicht vom vorteiel :(
Da_Knuddelbaer - Mi 18.06.03 18:32
Doch, OOP wäre von Vorteil weil man dann simpelst die Koordinaten für das Haus herausfinden könnte (per Spritesuche), und notfalls so ein einfaches Feld bestimmen könnte wo ein Klick erfolgen darf.
Ich sag mal so: Alles was man Spritemäßig so zeichnen würde kann man auch finden. Dann nimmst du halt die Create-Anweisung und nicht das ImageList1.Items[x].Draw-Gedönz. Wenn du es mit oop machst dann schreibst du einfach noch eine zusätzliche Funktion die dir für das Haus aus den x- und y-Koordinaten des Sprites den benötigten Bereich ausspuckt.
mimi - Mi 18.06.03 19:47
mache mal ein beispiel, weil ich glaube es ist einfach das gleich ob ich nun ein array oder objekte durchsuche das. weil du muss doch so oder so die funktion für die onClick abfrage schreiben
Da_Knuddelbaer - Mi 18.06.03 19:57
Das ist wohl wahr, aber wenn ich mir so seine anderen Threads anschaue wird er meiner Meinung nach einiges besser klarkommen wenn er objektorientiert programmiert. :wink:
Gruß,
Knuddelbaer
mimi - Do 19.06.03 09:46
das schon, aber es bringt trotzedem nicht gearade viel wenn man die oop kann das problem ist so oder so :( da
Da_Knuddelbaer - Do 19.06.03 11:12
Ja, man muss es sich aber nicht unbedingt schwieriger machen als das Problem schon ist :lol:
mimi - Do 19.06.03 14:45
aber darduch wird es auch nicht einfacher :(
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!