Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-08-2011, 22:10   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2011
Beiträge: 30
Aufgaben von Model, View und Controller in Adventure

Hi
ich entwickele aktuell an einem Adventure-Spiel und versuche das MVC-Pattern nach besten Gewissen anzuwenden. Jetzt wollte ich mich aber nochmal Rückversichern welche Funktionalitäten von vom implementiert werden sollte (Model View oder Controller). Ich habe nämlich das Gefühl zu viel Verantwortung auf die View zu legen und zu wenig aufs Model.

Also zum Beispiel. Mein Spiel umfasst 2 Screens. Einen Startscreen und einen Spielscreen. Hier erstmal was man so machen kann:

1. Ein Hintergrundbild wird angezeigt. Wenn man mit der Maus zur Seite kommt, scrollt das Hintergrundbild ein Stück.

2. Auf dem Hintergrund-Sprite werden visuelle Komponenten plaziert (Objekte zum Einsammeln).

3. Eine Instanz des Inventars wird angezeigt.

4. Wenn man manche Objekte aus 2.) anklickt wird eine Animation dieser Objekte oder ein Sound abgespielt.

5. Wenn man andere Objekte aus 2.) anklickt werden diese aus der Szene entfernt und stattdessen im Inventar verwaltet.

6. Wenn man wiederum andere Objekte aus 2.) anklickt werden andere Objekte freigeschaltet, d.h. diese Objekte erhalten ebenfalls eine Klick-listener.

7. Beim Klick auf einen Zurückbutton wird ein Event dispatched, dass veranlasst, dass der Startscreen angezeigt wird.

Wo muss welcher Code hin? Also alle visuellen Komponenten instanziiere ich derzeitig in der View, auch wenn diese Objekte (z.b. das Inventar) nicht nur einfach Sprites sind, sondern zusätzlich auch noch andere Methoden, z.b. zum Verwalten von Objekten in einer Liste beinhalten.

Dementspechend registriere ich auch alle Event-Listener in der View. Wo kommen die Listener-Funktionen hin? Ich dachte vll in den Controler, aber es wäre irgendwie unsinnig wenn die Listener-Funktion dann nur eine Animation startet.

Was würde man im Model machen?? Ich könnte mir höchstens vorstellen Status zu speichern ob ein Objekt schon freigeschaltet ist, oder noch nicht??

Hoffe jemand ist so nett mich ein bisschen einzuweisen.
Danke!
Paratron ist offline   Mit Zitat antworten
Alt 17-08-2011, 07:46   #2 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Unterhaching/München
Beiträge: 513
Hallo.
Viel Spass beim Entwickeln des Adventures.
Im Model sollte der anwendungsweite Zustand gespeichert werden. Hat der Inhalt des Inventars über mehrere Views (also mehrere Schauplätze in deinem Spiel) Gültigkeit, dann speichere das im Modell. Gibt es in einer Ansicht eine Funktion, die den Ablauf in einer anderen Ansicht steuern (Betätigen eines Hebels, Ablegen eines Steins auf einer gewichtssensitiven Bodenplatte), speichere diesen Zustand im Model.

Hast Du allerdings nur auf die View bezogene Abläufe innerhalb eines Screens, dann kannst Du den Zustand auch in der View selber speichern - wenn sie keinerlei externe Auswirkung hat. Wenn Du eine Vase anklickst und diese dann vom Tisch fällt sollten die Listener auf die Vase und das Starten der Animation in der View liegen. Dafür braucht es keinen externen Controller oder Mediator, der auf das Event hört und nur wieder die Funktion in der View anstößt.

Generell eine gute Idee ist es, jedem Screen einen eigenen Mediator (Controller) zur Seite zu stellen, der auf Events der View hört, die für das Gesamtsystem von Bedeutung sind. Dieser Mediator kennt dein Model und kann dort die entscheidenden Werte speichern, also das Model beeinflussen. Deine View ist nur mit sich selbst beschäftigt und sendet Events, von denen sie aber nicht weiß, was im System damit passiert.

Nochmal: Hast Du Events, die nur zu Änderungen in der View führen, dann bleiben auch die Listener in der View.
malthoff ist offline   Mit Zitat antworten
Alt 18-08-2011, 07:06   #3 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
hi..
das gute alte mvc mal wieder..
es gab bereits ausschweifende diskussionen darueber, vielleicht hilft es dir weiter..

oop-anfaengerfragen

gruessle
// b
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 18-08-2011, 21:57   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2011
Beiträge: 30
Danke ihr zwei. So ähnlich läuft es bei mir auch schon. Allerdings habe ich z.b. für jeden Screen auch ein eigenes Model, was aber schwachsinnig ist. ein "StatusModel" gefällt mir da schon viel besser.
Paratron ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
mvc

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Model + Controller in Java. View in Flash? javaFlasher ActionScript 3 2 24-02-2010 20:39
Flex Data Bindig Model<->View Quarkus Flex programmieren 2 13-01-2010 09:54
Flex DataBinding => VO aus Model an View Komponente? quasimono Flex programmieren 1 26-05-2009 19:14
[MVC] Variablen im Model über View setzen? hedonistics Softwarearchitektur und Entwurfsmuster 12 10-12-2006 15:02
Model View Controller Architektur compuboy1010 Softwarearchitektur und Entwurfsmuster 51 08-08-2006 11:24


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:11 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele