Klassenkonzept...



  • Ich hab jetzt die Ferien mit einem Freund Snake 3D getippt, ABER mein altes Problem ist wieder aufgetreten: Wie soll das Klassenkonzept aussehen.

    Wir haben:
    Window(Create, Kill, WndProc ...) <-- erbt <-- von OpenGLInterface(SetPDF, LockFrameRate, SwapBuffer...)

    Die Window Class enthält eine Instanz der OpenGL klasse(Render Scene, Move, Initialize)

    Die OpenGL Klasse enthält eine Instanz der Snake <-- enthält x instazen der Segment Kalsse.

    Die Sound Klasse sollte in der Segment, Snake und OpenGl verfügbar sein.

    Sound <-- erbt <--OpenALSoundDevice --> Mach die Hardware fertig
    Sound besitzt(LoadWaveFile, Play, Stop, CreateBuffersAndResources ...)

    Wir haben nach ner Weile gemerkt, dass das ganze Konzept Müll ist. Hat jemand vieleicht einen Vorschlag, wie man ein gutes Konzept designt?



  • Wenn Du eine Klasse von einer anderen Klasse erben lässt, dann sollten diese beiden Klassen eine "ist-ein"-Beziehung haben.
    Wie Du schon selbst sagtest, ergibt das von Dir gezeigte Konzept wenig Sinn. Denn weder ist ein Fenster ein OpenGL-Interface, noch ist ein Sound ein OpenALDevice ...

    Und was meinst Du mit:

    Die Sound Klasse sollte in der Segment, Snake und OpenGl verfügbar sein.

    Schau Dir mal mein 2D-Spiele-Framework an:
    http://www.spieleprogrammierer.de/index.php?option=com_docman&Itemid=50&task=view_category&catid=24&order=dmname&ascdesc=ASC

    Ich finde, dass ich es da ganz gut gelöst habe.



  • Ich meine, wenn die Snake irgendwo kollidiert, dann soll ein Sound abgespielt werden (übernimmt Snake Klasse), gleichzeitig soll immer ein Hintergrund Sound abgespielt werden. (übernimmt OpenGL Klasse)



  • Wieso denn das?
    Was hat die OpenGL-Klasse denn mit Sound zu tun?



  • Ich hab mir mal denn Code deiner Engine gesaugt, langsam verstehe ich, wie mans macht.


Anmelden zum Antworten