Feststellen, welches Objekt genau angeklickt wurde
-
Wie kann ich das am intelligentesten machen? Ich habe in meinem Texturen transparente Bereiche und wenn man die anklickt, soll das Objekt nicht angeklickt worden sein.
Ich könnte jetzt z.B. die Top-Surface nehmen und dann mittels GetDC() herausfinden, ob sich an dem Pixel eine transparente Farbe befindet. Kommt mir aber reichlich umständlich vor.
Sollte auch ein paar mal pro Frame stattfinden können, also nicht mega-langsam sein.
-
Warum brauchst du das so genau? Logik, die vom Rendern abhängig, ist doch evil.
Bye, TGGC \-/
-
Das ist ja keine Logik, welches Objekt angewählt ist. Ich hätte das schon gerne genau.
In AoE II hat mich das immer so beeindruckt, da hat sich das Mühlenrad gedreht und je nachdem, wie es gedreht war, hat man es an bestimmten Stellen anklicken können oder nicht.
-
Optimizer schrieb:
In AoE II hat mich das immer so beeindruckt, da hat sich das Mühlenrad gedreht und je nachdem, wie es gedreht war, hat man es an bestimmten Stellen anklicken können oder nicht.
Sowas hasse ich aber wie die Pest, wenn die "Hover-Funktion" dauernd kommt und wieder geht, und dann auch noch je nach Framerate...
Dann lieber ein _etwas_ größeres BoundingRectangle!
-
Trotzdem suckt es aber jetzt, wenn man ein Objekt nicht anklicken kann, weil es so halb verdeckt ist. Man kann ja das Bounding Rectangle immer noch größer machen, wenn wirklich kein Objekt an der Maus ist.
-
Ach, ist Anklicken keine Logik? Also wenn es vom Rendern abhängig sein soll, das musst du die Ergebnisse des Rendern auslesen oder das Rendern nochmal "nachstellen", z.b. mit farbcodierten IDs.
Bye, TGGC \-/
-
Ne, ist reine GUI-Sache. Das Anklicken von etwas hat keinen Enfluss auf den Spielverlauf oder sonst irgendwas (nur welche Einheit eben ausgewählt ist ;/).
Vom Rendern abhängig ist es jetzt schon. Ich habe bisher nur einen rechteckigen Bereich um das Objekt als Auswahlbereich. Ich würde gerne die transparenten Teile einer Textur davon ausschließen.