MovieClips+steuern

Die Grundkonzepte des Programmierens kennen Sie inzwischen, jetzt wird es Zeit, zu MovieClips und deren Steuerung per Code zurückzukehren. Im Folgenden finden Sie verschiedene kleine Aufgaben, die sie zum Experimentieren mit der Anwendung von AS-Code auf MovieClips anregen sollen (die meisten Aufgaben kann man übrigens als Ansätze für kleine Spiele betrachten). Dazu braucht es natürlich auch wieder die schon zu Beginn eingeführten Ereignisse sowie die zugehörigen Funktionen. Die Voraussetzung für alle Aufgaben ist, dass ein MovieClip mit dem Instanznamen //box_mc// in der Bühne existiert - sinnvollerweise sollte er ein farbiges Rechteck enthalten.

Aufgabe 1
Wenn auf box_mc geklickt (oder gezeigt) wird, soll sie sich um 50 Pixel in eine zufällig gewählte Richtung (oben/unten/rechts/links) bewegen.

Aufgabe 2
Sorgen sie dafür, dass die Box aus Aufgabe 1 nur bei jedem dritten Klick eine (zufällige) Bewegung ausführt. __Hinweis__: Am einfachsten geht das, indem man in einer Variable die Frames mitzählt und dann mit einer Modulo-Rechnung (%) arbeitet.

Aufgabe 3
Box_mc soll sich kontinuierlich bewegen, pro Frame um 10 Pixel nach rechts. Wenn die Box am rechten Rand aus der Bühne gefahren ist, soll sie auf der linken Seite wieder hereinkommen. __Hinweis__: Für kontinuierliche Aktionen gibt es das Ereignis Event.ENTER_FRAME. __Hinweis__: Die Breite der Bühne kann man nachschauen, oder per Code erfragen: http://flashlernen.wikispaces.com/Snippets+AS3#x-Höhe und Breite der Bühne abfragen

Aufgabe 4
Box_mc soll sich in jedem Frame auf die aktuelle Position der Maus zubewegen, und zwar um 50% der Distanz. __Hinweis__: Die Mausposition erfragen geht so: http://flashlernen.wikispaces.com/Snippets+AS3#x-Position der Maus abfragen

Aufgabe 5
Box_mc soll sich in jedem Frame in eine zufällig gewählte Richtung bewegen (s. Aufgabe 1, aber kontinuierlich, das nennt man einen Random Walker). Zudem sollen Breite und Höhe in jedem Frame um 1 Pixel vergrössert werden. Wenn der Benutzer auf die Box klickt, sollen Breite und Höhe um 10 Pixel reduziert werden. __Hinweis__: Das ist schon fast ein kleines Spiel. Sorgen sie dafür, dass nach überschreiten einer Maximalbreite ein MovieClip mit dem Schriftzug "GameOver" angezeigt wird, bei unterschreiten einer Mindestbreite dagegen "You won!!!". Vielleicht passen sie die Werte für Bewegung und Grössenänderung noch so an, dass es schwierig, aber machbar ist, oft genug auf den Random Walker zu klicken - voila.

Aufgabe 6
Kombinieren sie Aufgabe 2 und Aufgabe 5 zu einem anderen Minispiel: eine Box bewegt sich kontinuierlich über den Bildschirm (sie können hier auch eine andere Bewegungsart umsetzen oder bspw. zufällige Geschwindigkeits- oder Richtungsänderungen einbauen). Ein weiterer MovieClip - z.B. ein Kreis - bewegt sich immer auf die Maus zu (um einen Prozentsatz der Distanz), so dass man ihn steuern kann, aber nur mit Verzögerung. Wenn Box und Kreis miteinander kollidieren, ist das Spiel ist verloren - was angemessen angezeigt wird. __Hinweis__: Beispielcodes für die Kollisionserkennung finden sie unter Snippets AS3, z.B.: http://flashlernen.wikispaces.com/Snippets+AS3#x-Herausfinden, ob sich zwei Instanzen überschneiden __Hinweis__: Interessanter wird das Spiel, wenn es mehr Objekte (mit verschiedenen Bewegungsarten) gibt, mit denen der Kreis nicht kollidieren darf. Zudem könnte der Kreis im Laufe der Zeit grösser werden, oder die Bewegung der Objekte schneller oder zufälliger, so dass es immer schwieriger wird, ihnen auszuweichen.