Perlin+Karten

Aufgabe (freiwillige Zusatzaufgabe für Fortgeschrittene)
Schreiben sie ein Programm, das bei jedem Mausklick eine neue, möglichst realistisch aussehende Landkarte generiert. Dazu werden sie die Klassen Bitmap und BitmapData benötigen und verstehen müssen, wie Perlin Noise (myBitmapData.perlinNoise) funktioniert.

Vorgehen
Experimentieren Sie zunächst mit den benötigten Klassen, indem Sie eine BitmapData-Instanz generieren, diese mit perlinNoise füllen, und dann die generierten Werte benutzen, um eine krumme Linie zu zeichnen (s. Schaubild). Experimentieren Sie dann mit den Parametern von perlinNoise, so dass Sie deren Auswirkungen verstehen (z.B. indem Sie einzelne Parameter per Texteingabe oder Slider veränderbar machen)

Dann können Sie sich an die eigentliche Aufgabe machen:
> Hinweis: wenn es eine Insellandschaft werden soll, dann muss man den Noise noch mit einer (quadratischen) Funktion überlagern, so dass die Werte am Rand sehr klein werden
 * 1) perlinNoise in angemessen dimensionierte BitmapData-Instanz (//myNoise//) füllen
 * 2) zweite, gleich grosse BitmapData-Instanz (//karte//) erstellen
 * 3) die Werte in //myNoise// benutzen, um die entsprechenden Pixel in //karte// einzufärben.
 * 1) //karte// mithilfe einer Bitmap-Instanz anzeigen
 * 2) zum Schluss noch dafür sorgen, dass die Schritte 1 bis 4 bei Mausklick erneut ausgeführt werden, so dass sich jedes Mal eine neue Karte ergibt

Erweiterungen

 * Fügen Sie Schaltflächen hinzu, mit denen man den Charakter der generierten Landschaft verändern kann (z.B. Farbgebung, Parameter von perlinNoise, etc.)
 * Legen Sie mit perlinNoise generierte, sich selbständig bewegende Wolken über die Landschaft
 * Setzen Sie MovieClips (z.B. von Schiffen, Bäume, Häuser, o.ä.) in die Landschaft – zufällig positioniert, aber nur dort, wo sie passen (z.B. Schiffe ins Wasser)
 * Experimentieren Sie mit weiteren Anwendungen von perlinNoise

Beispiele & Tutorials

 * http://www.on-design.de/tutor/FlsExpl/AS3/bitmap/index.htm
 * http://www.houseofthead.com/blog/flash-as3-perlin-noise-explained-and-demonstrated-part-1/
 * http://blog.leeburrows.com/2010/09/lets-make-some-noise/
 * http://www.flashandmath.com/intermediate/clouds/
 * http://www.flashandmath.com/intermediate/sub/
 * http://www.flashandmath.com/advanced/perlinlines/