Classes: OO Rodelhang - JirkaDellOro/EIA2 GitHub Wiki

Aufgabe

Beleben Sie Ihren Rodelhang durch Animation und refaktorieren Sie ihn zu einem objektorientierten Programm!

Entwickeln Sie Klassen für die Kinder mit Schlitten, die Schneeflocken und alle anderen bewegten Objekte. Einige Kinder sollen den Hang hinab fahren, andere ziehen ihre Schlitten gerade den Hang hinauf. Zu jeder Zeit sollen mindesten zehn Kinder auf dem Hang zu sehen sein. Achten Sie darauf, dass eine Instanz (also ein Objekt) der Klasse auch wirklich nur ein Objekt auf dem Bildschirm beschreibt, und nicht ganze Gruppen. Implementieren Sie die Methoden zum Zeichnen und Bewegen als Objektmethoden in den Klassen. Sie können teilweise leicht Ihre bereits erstellten Methoden in die Klassen verschieben und modifizieren. Achten Sie unbedingt darauf, dass die Parameterlisten jetzt zum größten Teil überflüssig werden, da die Objektmethoden direkt auf die Objekteigenschaften zugreifen können! Es sollen nur Parameter übergeben werden, wenn die entsprechende Information nicht sinnvoll dem Objekt selbst zugeordnet werden kann.

Stillstehende Objekte im Hintergrund sollen nur gezeichnet und deren Abbild mit der Hintergrundgrafik gespeichert werden. Hiermit können Sie bei jedem Animationsframe den Hintergrund restaurieren ohne das jedesmal aufwendige Zeichenbefehle abgearbeitet werden müssen.

Konzeption

Erstellen Sie für jede Klasse ein kleines Blockdiagramm, in dem Sie den Namen der Klasse, alle erforderlichen Attribute mit Datentypen und die Methoden mit Typ des Rückgabewertes und ggf. der Parameterliste eintragen.

Erstellen Sie vollständige Aktivitätsdiagramme für die Bewegungsmethoden der Objekte!

Produktion

Implementieren Sie die Klassen in eigenen Dateien und entfernen Sie den nun überflüssigen Code aus dem Hauptprogramm. Hauptprogramm und Klassen sollen zum gleichen Namespace gehören.

Recherchehinweise

  • this
  • getImageData
  • putImageData