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

roka

Frischling

  • »roka« ist der Autor dieses Themas

Beiträge: 4

Wohnort: Grosse Stadt

  • Private Nachricht senden

1

05.02.2012, 20:56

SFML2, GameStates, GUI und die Eingabe - "Designfrage" zum Input

Hallo alle zusammen,

nach längerer Abwesenheit melde ich mich mal wieder und habe auch gleich eine "Designfrage". Ich habe ein Spiel bzw. schreibe an einem Programm das eines werden soll :) und habe dafür bereits mehrere Klassen implementiert. Die Klasse "Game" ist als Singleton implementiert und ist meine zentrale Klasse in der alles zusammenkommt. Das SFML-Fenster, ein Property-Tree aus Boost für die Konfiguration, der Stack of States, usw. sind alle Member meiner Game-Klasse.

Da ich momentan an einer GUI für SFML2 schreibe, hänge ich etwas und bin mir nicht schlüssig wo ich die Eingabe, also das nicht-blockierende Event-Polling von SFML unterbringe. Derzeit wird in der Run-Methode meiner Klasse "Game" nur das Event für das Schliessen des Fenster abgefragt. Die Run-Methode des States zeichnet das aktuelle GUI, ruft das InputHandling seines "GUI"-Members auf und zeichnet anschliessend das SFML-Fenster. Jedes Drawable (abstrakte Basisklasse "Drawable" für alle GUI-Elemente wie Button, Checkboxes, etc.) fragt die aktuelle Mausposition ab.

Sind die aktuellen Mauskoordinaten (in Relation zum SFML-Fenster) innerhalb des Buttons wird ein Boolean auf True gesetzt und anschliessend wird über das als Referenz übergebene SFML-Fenster das Event für das Release der linken Maustaste abgefragt. Ist dem so wird die per Boost::Bind angebundene Methode aufgerufen. Jedes Drawable hat also einen spezifischen Satz an Methoden à la OnClick, OnRelease usw. Der "Aufbau" des GUI einschl. dem Anbinden an entsprechende Rückruffunktionen bzw. Methoden passiert im Konstruktor des States.

Inwzischen habe ich soviel rumprobiert und viele Beiträge und Beispiele gesehen und gelesen, dass ich den Wald vor lauter Bäumen nicht mehr sehe. Wo bringt man idealerweise das Input-Handling unter?

Falls Codebeispiele gewünscht sind, bitte ich um entsprechende Mitteilung. Mit Dank für zahl- und hilfreiche Beiträge und Tipps verbleibe ich mit Dank für jedes
nicht gepostete "schon die Suchfunktion benutzt und oder gegoogelt?"


Mit freundlichen Grüßen

roka
Signatur?