Projekt Bewegung

Um bei einem gezeichneten Objekt den Eindruck von Bewegung zu erzeugen, muss die Zeichnung (wie bei einem Trickfilm) mehrfach nacheinander gezeichnet werden, wobei die Position der Zeichnung bei jeder Wiederholung leicht verändert wird. Die alte Zeichnung muss vor dem Neuzeichnen gelöscht werden - in der Regel löst man das durch Überzeichnen der vorherigen Zeichnung mit der Hintergrundfarbe, man kann aber auch bei jedem Neuzeichnen die Zeichenfläche neu erzeugen, wodurch die alte Zeichnung gelöscht wird.

Bewegungsänderung am Bildschirmrand

Lässt man das gezeichnete Objekt an den Rändern des Bildschirms „abprallen“, kann man eine Art Bildschirmschoner realisieren.

Oben und unten

Um am oberen oder unteren Rand die Bewegungsrichtung zu ändern, muss die Veränderung der y-Koordinate in die Gegenrichtung gehen. Von oben nach unten muss die y-Koordinate kleiner werden (y--), von unten nach oben größer (y++).

Um am linken und rechten Rand die Bewegungsrichtung zu ändern, muss die Veränderung der x-Koordinate in die Gegenrichtung gehen. Von links nach rechts muss die x-Koordinate größer werden (x++), von rechts nach links kleiner (x--).

Schräge Bewegung

Bei einer schräglaufenden Bewegung müssen, je nach Position, beide Richtungen berücksichtigt werden. Kommt das Objekt an den linken oder rechten Rand, muss die x-Veränderung in die Gegenrichtung verändert werden. Wird der obere oder untere Rand berührt, die y-Veränderung.

Algorithmus

Um diese Veränderung automatisiert vornehmen zu können, kann man eine neue Variable richtung verwenden, die nur die Werte +1 und -1 annimmt: +1 für links nach rechts oder unten nach oben, -1 für die Gegenrichtungen. Die Veränderung in x-bzw. y-Richtung wird dann mit dieser Variablen multipliziert (bei der schrägen Bewegung sollten zwei Variablen existieren, xrichtung und yrichtung).

schule/if/lisa/bewegung.txt · Zuletzt geändert: 2018/05/29 23:53 (Externe Bearbeitung)
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0