Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
das_svl_game_framework_anwenden [2017/10/06 10:36] huwi |
das_svl_game_framework_anwenden [2019/07/27 16:11] (aktuell) huwi |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Das SVL-Game-Framework anwenden ====== | ||
+ | Das SVL-Game-Framework ist aus einer Idee heraus entstanden, Einsteigern die praktische Systementwicklung mit der UML nahe zu bringen, ohne auf Programmierkenntnisse angewiesen zu sein. Aus fachdidaktischer Sicht ist es besonders für die Einführung in die objektorientierte Systementwicklung geeignet und gestattet, eine objektorientierte Analyse zu erlernen und Entwurfstechniken anzuwenden, bei denen das Projekt bis zum lauffähigen System gelangt, ohne das eine objektorientierte Programmiersprache angewendet werden muss. Dabei kommt die Technologie der UML-Templates in SiSy voll zum Einsatz. Es lohnt sich das kleine Game-Framework einmal auszuprobieren, | ||
+ | |||
+ | > | ||
+ | |||
+ | Um sich mit dem Game-Framework auseinander zu setzen ist es nötig, in SiSy ein SVL-Projekt anzulegen, die aktuelle SVL aus dem Libstore zu laden und ein neues Klassendiagramm zu erstellen. Als Vorlage wählen Sie das // | ||
+ | |||
+ | ====== Struktur des Game Framework ====== | ||
+ | Das Grundgerüst der Game-Application besteht aus der Instanz eines Fensters vom Typ // | ||
+ | |||
+ | > | ||
+ | |||
+ | Die Klasse // | ||
+ | * // | ||
+ | * es gibt eine globale Instanz //game// vom Typ //Game// | ||
+ | * //Game// kennt das // | ||
+ | * //Game// besteht aus // | ||
+ | * jedes // | ||
+ | * jeder // | ||
+ | * es gibt eine Reihe von spezialisierten // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * ... | ||
+ | |||
+ | > | ||
+ | |||
+ | Die Klassen des Game-Framework können in der konkreten Anwendung mit Templates weiter spezifiziert werden. Dabei weisen Templates den konkreten Klassen spezielle Struktur- und Verhaltensmerkmale zu. Die Templates sind je nach Aufgabe in Pakete einsortiert. | ||
+ | |||
+ | > | ||
+ | |||
+ | Wenn wir in eines der Templatepakete hineinschauen, | ||
+ | |||
+ | > | ||
+ | |||
+ | Selbst der Code in den Templates ist doch eher trivial. | ||
+ | |||
+ | > | ||
+ | |||
+ | Es scheint, dass sich erst durch die geschickte Kombination der Klassen und Templates zur Laufzeit des Systems ein gewünschtes Verhalten der einzelnen Elemente, wie auch des gesamten Systems, einstellt. Hier sei nochmals auf das Konzept der // | ||
+ | |||
+ | ====== Die Klassen und Templates des Game-Framework anwenden ====== | ||
+ | Die konkreten Schritte einer methodischen Analyse, die dem objektorientierten Paradigma folgt, sind in den entsprechenden Lehrheften, wie in [[http:// | ||
+ | * Spielfeld | ||
+ | * Schlange mit sich verlängerndem Schwanz | ||
+ | * eine Menge Beute (Käferpopulation) | ||
+ | * einige giftige Spinnen | ||
+ | * evtl. Hindernisse | ||
+ | |||
+ | Die Implementation des Spiels beginnen wir mit der Schlange. Genauer gesagt, dem Kopf der Schlange. Diese legen wir als Klasse an und aggregieren sie auf dem Spielfeld. | ||
+ | |||
+ | >//**Die Schlange ist auf dem Spielfeld.**// | ||
+ | |||
+ | > | ||
+ | |||
+ | Wir möchten die Schlange mit der Tastatur steuern, indem per Cursortasten die Richtung der Schlange geändert werden kann. Die geeignete Klasse dafür ist die Klasse // | ||
+ | |||
+ | >//**Die Schlange bewegt sich über das Spielfeld.**// | ||
+ | |||
+ | > | ||
+ | |||
+ | Erstellen Sie die Anwendung und testen Sie den Stand der Entwicklung! | ||
+ | |||
+ | >< | ||
+ | |||
+ | Sie können das Spielelement mit dem Namen //Snake// per Cursortasten steuern. Im weiteren Verlauf kann dem Element noch eine individuelle Form und Farbe gegeben werden. Dazu wählen Sie sich aus den Paketen // | ||
+ | |||
+ | >//**Die Schlange hat einen Schwanz.**// | ||
+ | |||
+ | > | ||
+ | |||
+ | Den Schlangenschwanz kann man sich als eine Reihe von Segmenten vorstellen, die aneinandergereiht dem Weg des bereits realisierten Schlangenkopfes folgen. Die geeignete Basisklasse dafür ist das // | ||
+ | |||
+ | >//**Der Schwanz folgt dem Schlangenkopf**// | ||
+ | |||
+ | > | ||
+ | |||
+ | Templates besitzen zumeist Parameter. Diese legen genau fest, wie eine Realisierung zu erfolgen hat. Bei der Schlange sind die Anfangsparameter für den Schwanz festzulegen. Zum einen wie der Elementtyp des Schwanzes heißt, zum anderen wie lang der Schwanz am Anfang sein soll. | ||
+ | |||
+ | > | ||
+ | |||
+ | Erstellen Sie die Anwendung und testen Sie den Stand der Entwicklung! | ||
+ | |||
+ | >< | ||
+ | |||
+ | Na das sieht doch schon fast wie eine Schlange aus. Es fehlt noch der Schlangenfraß, | ||
+ | |||
+ | >//**Auf dem Spielfeld krabbeln eine Menge Käfer (Käferpopulation)**// | ||
+ | |||
+ | > | ||
+ | |||
+ | Erstellen Sie die Anwendung wie oben im Bild gezeigt und testen Sie den Stand der Entwicklung! | ||
+ | |||
+ | >< | ||
+ | |||
+ | So, dann kann "das große Fressen" | ||
+ | * //Der Biss der Schlange ist tödlich.// | ||
+ | * //Wenn die Schlange etwas frisst, wächst der Schwanz.// | ||
+ | * //Wenn alle Käfer aufgefressen sind, ist das Spiel gewonnen.// | ||
+ | |||
+ | > | ||
+ | |||
+ | |||
+ | Erstellen Sie die Anwendung wie oben im Bild gezeigt und testen Sie den Stand der Entwicklung! | ||
+ | |||
+ | >< | ||
+ | |||
+ | ====== Das Spiel SuperSnake vervollständigen ====== | ||
+ | Die grundlegende Spielfuktionalität ist bereits erreicht. Es sind jedoch noch eine Unmenge individueller Anpassungen und Verbesserungen möglich. Es fehlen noch die giftigen Spinnen, die Schlange sollte noch ein adequates Verhalten an den Spielfeldgrenzen erhalten. Es könnten noch ein paar Hindernisse ins Spiel kommen, welche die Schlange nicht berühren darf usw.. | ||
+ | |||
+ | > | ||
+ | |||
+ | //**Viel Spaß beim Experimentieren!**// | ||
+ | |||
+ | ====== Videozusammenfassung und Videohinweise ====== | ||
+ | >< | ||
+ | |||
+ | >< | ||
+ | |||
+ | >< | ||