Hallo, ich hab ein kleines Anliegen unabhängig von der Programmiersprache.
Ich bin derzeit dabeii das klassische Asteroids als MVC umzusetzen.
Also ein Model, dass die Daten und die Zugriffslogik bzw. Manipulation dieser Daten steuert.
Ein Controller, der die Nutzereingaben in "Geschäftslogik" transferiert und das model entsprechend ansteuert bzw. die view. Über den controller würde ich auch den game-loop auslösen.
Und die View, die alles rendert.
Ich denke, dass Asteroids sich nicht so wirklich anbietet für das MVC Design.
Problematisch finde ich die strikte Trennung zwischen Model und View, bwz. z.B. der Positionsdaten der Spielobjekte. Diese werden ja in jedem game-tick manipuliert und müssen entsprechend neu angezeigt werden in der View.
In meiner View habe ich meine Sprite-Objects, die aber natürlich keinen linkage haben zu ihrem Datenobjekt, d.h. in jedem gameloop müssen die Sprites neu erstellt werden und positioniert werden.
Ich kann sie natürlich poolen, damit sie nicht jedesmal neu erzeugt werden müssen.
Aber praktischer wäre es natürlich schon, wenn ein Sprite-Object auch entsprechende Model-Daten kapseln würde und z.B. ihre Position über ein update-funktion selbst berechnet. Man hätte dann natürlich nicht mehr die Trennung zwischen View und Model.
Was sind eure Gedanken dazu?
Ich bin derzeit dabeii das klassische Asteroids als MVC umzusetzen.
Also ein Model, dass die Daten und die Zugriffslogik bzw. Manipulation dieser Daten steuert.
Ein Controller, der die Nutzereingaben in "Geschäftslogik" transferiert und das model entsprechend ansteuert bzw. die view. Über den controller würde ich auch den game-loop auslösen.
Und die View, die alles rendert.
Ich denke, dass Asteroids sich nicht so wirklich anbietet für das MVC Design.
Problematisch finde ich die strikte Trennung zwischen Model und View, bwz. z.B. der Positionsdaten der Spielobjekte. Diese werden ja in jedem game-tick manipuliert und müssen entsprechend neu angezeigt werden in der View.
In meiner View habe ich meine Sprite-Objects, die aber natürlich keinen linkage haben zu ihrem Datenobjekt, d.h. in jedem gameloop müssen die Sprites neu erstellt werden und positioniert werden.
Ich kann sie natürlich poolen, damit sie nicht jedesmal neu erzeugt werden müssen.
Aber praktischer wäre es natürlich schon, wenn ein Sprite-Object auch entsprechende Model-Daten kapseln würde und z.B. ihre Position über ein update-funktion selbst berechnet. Man hätte dann natürlich nicht mehr die Trennung zwischen View und Model.
Was sind eure Gedanken dazu?