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

02.06.2012, 13:35

C++ - SFML2 - GameDesign - Zugriff auf sf::RenderWindow

Hallo,

ich stehe momentan vor einem Problem beim GameDesign. Stellt euch folgendes Szenario vor:

Eine Ausgangs-Klasse mit einem sf::RenderWindow. Diese Klasse dient als Ausgangspunt für das Spiel und ist lediglich für die Initialisierung der am Anfang benötigten Inhalte zuständig.

Darauf folgt eine StateManager-Klasse, die ihrerseits lediglich für die Verwaltung der verschiedenen GameStates verantwortlich ist.

Nun folgt die abstrakte GameState-Klasse, die nun vorschreibt, welche minimalen Funktionen implementiert werden müssen. Jeder GameState erbt von dieser Klasse.


________

Meine Frage ist wohl ziemlich banal(?) - wie würde nun ein angemessener Zugriff auf sf::RenderWindow aussehen, damit der GameState Zugriff auf Draw() etc. hat? Forward Declaration? Bitte berücksichtigt die Tatsache, dass dies mein erstes "größeres" (relativ gesehen .. ;)) Spiel-Projekt ist, welches OO-Ansätze verwendet.

Mit freundlichen Grüßen
infected1

2

02.06.2012, 13:56

Auch wenns nicht schön ist, ich hätte es global gemacht. Ansonsten eine Get-Funktion schreiben. :)

MfG
Check

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

02.06.2012, 14:10

Wenn eine Klasse Zugriff auf das RenderWindow braucht, dann übergib ihr eben eine Referenz bzw. einen Pointer drauf?

FreezingEngine

Treue Seele

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

4

02.06.2012, 14:17

Jup, ich machs genauso wie dot es gesagt hat , ist aber auch die einzige logische Lösung oder?
Etwas anderes wäre ja wieder mit mehr Arbeit verbunden und umständlich.
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Werbeanzeige