Autor Beitrag
Elayla
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: 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 :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?

_________________
Das wahre Ziel des Krieges ist der Frieden.
Sun Tzu
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 485



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: 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?

_________________
Das wahre Ziel des Krieges ist der Frieden.
Sun Tzu
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 485



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 485



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 485



BeitragVerfasst: Do 19.06.03 11:12 
Ja, man muss es sich aber nicht unbedingt schwieriger machen als das Problem schon ist :lol:
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Do 19.06.03 14:45 
aber darduch wird es auch nicht einfacher :(

_________________
MFG
Michael Springwald, "kann kein englisch...."