Hallo liebe Community,
Ich möchte gerne ein Spiel programmieren. Um es gleich zu Anfang richtig zu strukturieren, habe ich mich entschlossen, das Model-View-Controller-Pattern anzuwenden. Allerdings habe ich da so einige Probleme, wie ich das nun mache...
Das Pattern teilt das Programm ja in 3 Teile: Model (das wären dann die Spielobjekte), View (Ansicht der Objekte, Camera) und Controller, der sich View anguckt und prüft, ob Spieler eingaben macht und die Modelle entsprechend updatet.
Soweit richtig? Oder eher nicht?
So... Jetzt habe ich meinetwegen eine Map, 50 Bäume, 20 Einheiten, die sich bewegen und einige Anzeigen (Lebensbalken, Freund/Feind-Kennung, etc.) und den Spieler.
Also kann ich ein Array o.ä. für die 50 Bäume anlegen, die eine Ableitung von der Model-Klasse sind. Das Array ist in der Controller-Klasse? Und dann kann ich sagen: bäume[5].FalleUm(); -> Controller ändert Model
Jetzt zeichne ich die ganzen Dinger in der Controller-Klasse: View.Draw(Model meinModel); -> View holt sich die Daten von Model
Problem: jedes Model gibt ja eigentlich andere Daten aus, z.B. für einen Baum muss keinen Lebensbalken gezeichnet werden... Wie strukturiere ich das? Für jede Unterscheidung eine andere Methode, sie zu zeichnen? Also Lebensbalken erst in View.DrawGUI()?
Wenn ich jetzt als Anwender interagiere, und mit der Maus irgendwo hinklicke, wo geht das dann hin? Ich meine das bekommt man ja im 3d-Raum mit Picking hin, aber dazu müssen die Objekte dann mitkriegen, dass sie "angeklickt" wurden... der Controller braucht also die Daten von View um das Model zu bestimmen? Wie mache ich das? o.O
Macht man das überhaupt so? Ich habe MVC empfohlen bekommen, aber wie ich das genau anwenden soll ist mir schleierhaft...
Könnt ihr mir helfen?
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »a_b_c« (23.02.2013, 17:52)