Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
das_svl_game_framework_anwenden [2019/02/07 09:45] 127.0.0.1 Externe Bearbeitung |
das_svl_game_framework_anwenden [2019/07/27 16:11] huwi |
||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
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, | 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 // | 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 // | ||
Zeile 9: | Zeile 9: | ||
Das Grundgerüst der Game-Application besteht aus der Instanz eines Fensters vom Typ // | Das Grundgerüst der Game-Application besteht aus der Instanz eines Fensters vom Typ // | ||
- | >>>> | + | > |
Die Klasse // | Die Klasse // | ||
Zeile 31: | Zeile 31: | ||
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. | 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, | Wenn wir in eines der Templatepakete hineinschauen, | ||
- | >> | + | > |
Selbst der Code in den Templates ist doch eher trivial. | 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 // | 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 // | ||
Zeile 53: | Zeile 53: | ||
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 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.**// | + | >//**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 // | 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.**// | + | >//**Die Schlange bewegt sich über das Spielfeld.**// |
- | >>> | + | > |
Erstellen Sie die Anwendung und testen Sie den Stand der Entwicklung! | 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 // | 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.**// | + | >//**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 // | 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**// | + | >//**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. | 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! | 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ß, | 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)**// | + | >//**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! | Erstellen Sie die Anwendung wie oben im Bild gezeigt und testen Sie den Stand der Entwicklung! | ||
- | >>< | + | >< |
So, dann kann "das große Fressen" | So, dann kann "das große Fressen" | ||
Zeile 102: | Zeile 102: | ||
* //Wenn alle Käfer aufgefressen sind, ist das Spiel gewonnen.// | * //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! | Erstellen Sie die Anwendung wie oben im Bild gezeigt und testen Sie den Stand der Entwicklung! | ||
- | >>< | + | >< |
====== Das Spiel SuperSnake vervollständigen ====== | ====== Das Spiel SuperSnake vervollständigen ====== | ||
Zeile 117: | Zeile 117: | ||
====== Videozusammenfassung und Videohinweise ====== | ====== Videozusammenfassung und Videohinweise ====== | ||
- | >>< | + | >< |
- | >>< | + | >< |
- | >>>< | + | >< |