|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 28.02.2006, 12:26 Titel: Clickcheck mit DirectX |
|
|
Hi Leutz,
ich bin grad am Grübeln über folgende Sache: Ich habe ein paar "spezielle" Steuerelemente, wenn man das überhaupt sagen kann , gemalt/produziert; die handhabe ich mit DX. Die meisten Probleme sin erledigt, nur dieses net: ich hab z.B. eine Textur mit einem komisch geformten Knopf drauf, die mappe ich auf ein einfaches Quad. Nun muss ich testen, ob dadrauf geklickt wurde. Ihr kennt sowas sicher, viele Programme haben das. Dazu wollte ich wissen, wie ich das am besten mache. Hab da schon ein paar ideen, die wollen mir aber noch net so richtig gefallen und sin etwas zu umständlich. Deshalb wollt ich fragen, wie man sowas normalerweise macht... Habt ihr irgendwelche guten Ideen?
Gruß DirectXer
EDIT: arg das sollte eigentlich ins DirectX/OpenGL-Forum... kann das ma bitte einer wenn nötig verschieben? |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 28.02.2006, 13:35 Titel: |
|
|
Du hast also n Button der Rechteckig ist, der aber einen nicht rechteckigen BUtton als Textur hat, und der Treffer soll erst gewertet werden, wenn er tatsächlcih auf dem Button im Button ist? Dann würd ich halt erst das umgebungsrechteck testen und dann irgendwie direkt auf die Textur zugreifen und da den Alphakanal chekcen. Einfacher und schneller geht es natürlcih für den button einfach nur ein Rechteck zu definieren, oder vielleicht mehrere rechtecke, oder auch Kreise, das soltle man viel schneller checken können, als wie wenn man auf die Textur zurückgreifen muss.
Ich persönlich würde einfach festlegen das Buttons immer Rechteckig sind, auf die paar Pixel sollte es doch wirklich nciht drauf ankommen. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 28.02.2006, 13:45 Titel: |
|
|
hmm ok, das is ein Ansatz. Wenn ich aber ein größeres Quad habe und die Textur mit dem Rechteck für den Button dadrin viel kleiner ist (also ich hab ein großes Quad mit einem kleineren Rechteck als Button drauf), wie komme ich dann an das Rechteck? Ich hatte schon ne idee:
Ich definiere die Textur so, dass ich an der linken oberen Ecke wo das Rechteck beginnt z.B. einen Pixel mit RGB(255, 255 0) und am ende des Rechtecks auch einen einzigen Pixel rechts unten mit RGB(255, 255, 0) hab. Dann kann ich durch Zugriff auf die Textur genau die Aufspannung des Rechtecks festlegen. Wie komme ich dann aber auf die Position dieser Pixel auf dem Bildschirm? Koord sin egal, also ob Bildschirmkoords oder DX-Koords o.Ä.
Naja, das wäre meine Idee, kann aber sein, dass es noch eine einfachere gibt, wenn ja welche? Thx
Gruß DirectXer |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 28.02.2006, 13:48 Titel: |
|
|
Äh, du wilslt aus der Textur heras erkennen, wie der Button aussieht, den sie enthält, und diesen dann auf Kollision testen? Hört sich für mich kompliziert an. Wieso nicht einfach ein Rechteckiges sprite mit Buttontextur machen und das dann auf Kollsion testen? Da brauchste gar nix mit Textur zu fummeln. Und ansonsten einfach alles was nciht Button ist vollkommen transparent machen und die Textur locken, die Pixelposition anhand von Mauskoordinaten ausrechnen und den Alphawert abfragen. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 28.02.2006, 13:59 Titel: |
|
|
ok, mach ichs so, thx. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|