Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

14.11.2011, 21:36

GUI Programmierung / Information

Hallo Leute

Ich möchte gern für mein Projekt ein GUI schreiben leider habe ich kein plan wie die Technik dahinter aussieht. Im Netz findet sich leider auch nicht wirklich was mit den Suchbegriffen die ich nutze.
Ich möchte auch kein Lib benutzen, da ich die Technik dahinter verstehen und programmieren will.

Wenn ihr ein paar Links oder Stichwörter für die Suchmachschine habt immer her damit.

Danke. Gruß Koschi.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

14.11.2011, 21:43

Womit programmierst du denn/willst du programmieren? Wofür willst du die GUI verwenden? Welche Schnittstellen verwendest du schon?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

14.11.2011, 22:12

Definiere "keine Lib".
Keine custom-GUI-Lib? Keine Windows-GUI-Lib? Keine Grafik-Lib? Gar keine Lib?

Und definiere "GUI". Normale Fenster? GUI in einem Spiel?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

4

14.11.2011, 22:13

Ich nutze C++ mit der SFML.
Brauchen werde ich wohl nur Button mit einem ClickEvent und vielleicht einem MouseOverEvent.

Was verstehst du unter schnittstellen ?

@BlueCobold
MyGUI Qt und wie sie alle heißen

Ich möchte es in einem Spiel nutzen Menü Button und was man noch so an knöpfe brauch.

P.S. Also Buttons für ein Menü habe ich schon geschrieben aber nicht in einer Klasse. Das wäre auch kein Problem das ganze in einer Klasse zusammen zufassen. Mein Problem besteht darin das mir das wissen fehlt wie ich eine Variable anzahl an Knöpfen sagen kann bestimmt Funktionen auszuführen. Und über dieses Thema wird ich mich gern belesen.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Koschi« (14.11.2011, 22:24)


David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

14.11.2011, 22:25

Eine Diskussion über GUI-Design:
http://www.gamedev.net/topic/383734-desi…ed-gui-library/

Aber wenn du wirklich nur einen Button brauchst, frage ich mich, was da das Problem ist.

Du weißt, wie man ein Rechteck zeichnet.
Du weißt, wie man Text zeichnet.
Du weißt, wie man Mausklicks abfängt.
Du weißt, wie man prüft, ob der Mauszeiger in einem Rechteck ist.

Was dir vielleicht fehlt, ist ein Konzept, um das Event im Code zu verarbeiten. Dafür sind Signals & Slots ganz gut geeignet:
http://de.wikipedia.org/wiki/Signal-Slot-Konzept

6

15.11.2011, 06:45


Was dir vielleicht fehlt, ist ein Konzept, um das Event im Code zu verarbeiten. Dafür sind Signals & Slots ganz gut geeignet:
http://de.wikipedia.org/wiki/Signal-Slot-Konzept


Danke David. Das scheint genau das zu sein was mir gefehlt hat.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

7

15.11.2011, 11:59

Fürs erste würde es auch reichen eine Klasse für das Menü zu schreiben, der du eine Updatemethode gibst, die schaut ob sich der Mauszeiger über einem Button befindet und die linke Maustaste gedrückt ist. Da in einem Menü höchstens ein Button gleichzeitig gedrückt sein kann, kann diese Methode auch gleich einen Index für den Button zurückgeben, auf den du in einem switch&case reagierst.
Das ist zwar nicht das schönste Design, aber es reicht für den Anfang und es ist sehr einfach.
Ich hab das so in einem Projekt gemacht, dass ich vor ein paar Jahren angefangen habe und bin immernoch zufrieden damit.

Der Post richtet sich vorallem an Anfänger, die den zweiten Link von David nicht verstehen. :D
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

8

15.11.2011, 13:25

Wenn man möchte, dass der Button die jeweiligen Stellen "von allein" benachrichtigt, lässt sich ein Observer-Pattern auch leicht selbst schreiben.
http://de.wikipedia.org/wiki/Observer_(Entwurfsmuster)

Wobei ich für eine einfache Buttonfunktionalität vermutlich auch eher einen Ansatz wie NachoMan verfolgen würde. Wenn das Menü oder was auch immer statisch ist und sich nicht mehr verändert wird, kann man auch einfach eine Maske erstellen. Zum Beispiel kann man eine Grafik in größe des gesamten Bildes erstellen und die Farbwerte bestimmen die Funktion. Die Fläche der Buttons bekommen quasi unterschiedliche Farbwerte. Diese läd man dann Pixel für Pixel in ein Array. Wenn jetzt die Maus geklickt wird, guck man an der jeweiligen Stelle im Array. Je nach Farbwert wird dann entweder nichts gemacht, oder halt eine bestimmte Aktion ausgeführt. Habe ich selbst mal in einem Projekt so genutzt und war eigentlich zufrieden damit. Wobei man halt nicht mal eben zum Testen nen Button erstellt, da man zuerst die Grafik in Paint oä erstellen muss;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

9

15.11.2011, 15:47

Danke erstmal für den Input.

NachoMan sein ansatz habe ich schon programmiert, funktioniert wunderbar für ein Menü. Jetzt will ich das mal bissi besser machen. Dann kommt noch dazu das ich sowas wie Aktionsleisten in WoW machen möchte dabei soll man selber bestimmen können welche Aktion der Button ausführt.
Ich bin jetzt gerade dabei mich einzulesen leider habe ich nicht immer soviel Zeit, darum dauerts bestimmt etwas bis richtig hinter das konzept gestiegen bin.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

15.11.2011, 16:43

Ja, das denke ich auch. Denn das Konzept in WoW ist vermutlich um Längen komplexer als für Deine Stufe des Wissens momentan sinnvoll wäre.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige