| Autor |
Beitrag |
Elayla
      
Beiträge: 79
|
Verfasst: Di 17.06.03 21:12
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  )
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?
_________________ Das wahre Ziel des Krieges ist der Frieden.
Sun Tzu
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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:)
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Elayla 
      
Beiträge: 79
|
Verfasst: 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)
_________________ Das wahre Ziel des Krieges ist der Frieden.
Sun Tzu
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Di 17.06.03 22:16
ech umstädnlich:)
schade, sonst hätte ich dir schon weiterhelfen können 
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Elayla 
      
Beiträge: 79
|
Verfasst: 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 ^^
_________________ Das wahre Ziel des Krieges ist der Frieden.
Sun Tzu
|
|
Da_Knuddelbaer
      
Beiträge: 485
|
Verfasst: 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 
      
Beiträge: 79
|
Verfasst: Mi 18.06.03 16:21
Würde ich, aber ich geb zu das ich nicht/kaum OOP kann
Kennst du ein gutes Tutorial das als guter Einstieg dient?
_________________ Das wahre Ziel des Krieges ist der Frieden.
Sun Tzu
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Elayla 
      
Beiträge: 79
|
Verfasst: 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?
_________________ Das wahre Ziel des Krieges ist der Frieden.
Sun Tzu
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Mi 18.06.03 18:18
genau das ist der punk, also ist oop hier garnicht vom vorteiel 
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Da_Knuddelbaer
      
Beiträge: 485
|
Verfasst: 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
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Da_Knuddelbaer
      
Beiträge: 485
|
Verfasst: 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.
Gruß,
Knuddelbaer
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Da_Knuddelbaer
      
Beiträge: 485
|
Verfasst: Do 19.06.03 11:12
Ja, man muss es sich aber nicht unbedingt schwieriger machen als das Problem schon ist 
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Do 19.06.03 14:45
aber darduch wird es auch nicht einfacher 
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|