Aufgabe 20 - Canvas-Aquarium
Aufgabe 20 - Canvas-Aquarium
Abschnitt betitelt „Aufgabe 20 - Canvas-Aquarium“Worum geht es?
Abschnitt betitelt „Worum geht es?“OOP trifft Grafik: Ein Aquarium voller Fische, jeder ein Objekt, das sich selbst zeichnet und bewegt (siehe Kapitel GUI II - Canvas und Medien).
In dieser Übung üben Sie:
- Zeichnen: Formen und Farben auf dem Canvas.
- Animieren: Bewegung über Objektzustand und
requestAnimationFrame. - Objektdenken: jede Figur kapselt Zustand und Verhalten (
update(),draw()).
Benötigte Unterlagen
Abschnitt betitelt „Benötigte Unterlagen“- VS Code, Browser; Projekt mit
index.html(Canvas 800x500) undscript.js.
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“Teil A - Ein Fisch
Abschnitt betitelt „Teil A - Ein Fisch“- Klasse
Fischmit Feldernx,y,geschwindigkeit,groesse,farbe. draw(ctx): zeichnet den Fisch (Ellipse + Dreieck als Schwanz genügt völlig).update(): bewegt den Fisch horizontal; am Rand dreht er um (Geschwindigkeit spiegeln, Blickrichtung beachten).- Animationsschleife: Canvas löschen -> alle Objekte
update()-> alledraw().
Teil B - Ein Schwarm
Abschnitt betitelt „Teil B - Ein Schwarm“- Erzeugen Sie 10 Fische mit zufälliger Position, Größe, Farbe und Geschwindigkeit in einem Array.
- Die Animationsschleife behandelt alle Fische gleich, egal wie viele. Fügen Sie per Mausklick einen neuen Fisch an der Klickposition hinzu.
- Ergänzen Sie Luftblasen als zweite Klasse
Blase(steigt auf, verschwindet oben, startet unten neu). Die Schleife verwaltet beide Objektarten.
Teil C - Steuerung und Medien
Abschnitt betitelt „Teil C - Steuerung und Medien“- Ein Schieberegler (
input type="range") steuert die globale Geschwindigkeit (Faktor auf alleupdate()-Aufrufe). - Zusatz: Hintergrundbild einbinden und/oder ein Blubber-Geräusch beim Klick abspielen (
Audio). - Kontrollfrage als Kommentar: Warum ist
update()vondraw()getrennt? Was würde bei einer gemeinsamen Methode schwieriger?
Projektordner mit flüssig laufender Animation (keine Konsolenfehler).