---------------------------------------- ANIMATED SINUS MOVEMENT
- Das geordnete Chaos -
----------------------------------------
Aus Demos schon vielen bekannt, für Re- chenfaule und Nicht-Mathematiker ein Rätsel: die Sinus-Bewegungen von Spri- tes, die scheinbar wahllos, aber dennoch in einer gewissen Ordung auf dem Bild- schirm herumhüpfen und Saltos schlagen. Mit dem 'Animated Sinus Movement' (ASM) sind diese schwierigen und aufwendigen Koordinatenberechnungen für den Laien nun kein Problem mehr. Sie probieren die einzelnen Parameter einfach am Bild- schirm aus und speichern die beste Bewe- gungssequenz nur noch ab. Hiernach kann Sie bequem in jedes Programm übernommen werden, wobei eine Abspielroutine gleich mit eingebaut ist. Ein einfacher SYS- Aufruf genügt, um die Sinus-Sprites in Ihr Programm (auch BASIC) einzubinden. Da die Animations-Routine im IRQ arbei- tet bleibt der Rechner entlastet, so daß Sie das eigene Programm parallel zum Sinus laufen lassen können. DAS HAUPTMENU Im Hauptmenu sehen Sie in der Mitte des Bildschirms fünf Menupunkte, durch die ein blinkender Menubalken, mit Hilfe der Cursortasten, gesteuert wird. Mit 'RE- TURN' wählen Sie den gewünschten Menu- punkt an.
1) DER SINUS-EDITOR
Hier können Sie die Parameter der Sinus- funktion verändern. In der Mitte des Bildschirms sehen Sie nun acht Spri- tebälle, die auf dem Bildschirm herum- fliegen und dabei gleichzeitig größer und kleiner werden. Am linken Rand des Bildschirms sehen Sie die Liste der veränderbaren Sinus-Parameter. Der blin- kende Wert kann jeweils editiert werden. Benutzen Sie die Tasten 'CRSR UP' und 'CRSR DOWN' um durch die Parameterliste zu gehen und 'CRSR LEFT' und 'CRSR RIGHT' um einen Wert zu verringern, bzw. zu erhöhen. Mit der Taste 'I' werden alle Werte auf 0 zurückgesetzt (außer X- und Y-Add). Mit 'RETURN' gelangen Sie wieder zurück ins Hauptmenu. Die einzelnen Werte haben nun folgende Bedeutungen: Die X- und Y-Distance 1 gibt den Abstand innerhalb der Sprites an. Das jeweils nächste Sprite ist um die hier angegebenen Werte vom jeweils letzten entfernt. X- und Y-Distance 2 gibt die Gesamtverschiebung der Sprites von der Grundposition (X- und Y-Add) an. Sie ist ebenfalls variabel, so daß die komplette Animation sinusförmig hin- und her-, bzw. hoch- und runter schwingt. Mit den Speed-Werten, ändern Sie die Geschwindigkeit, mit der der jeweils nächste Wert gesetzt wird. X- und Y-Add sind die Grundverschiebungswerte von der Ausgangsposition der Sprites aus. Um die genaue Bedeutung der einzelnen Parameter zu verstehen, empfehle ich Ihnen, die Sinuswerte zunächst einmal mit 'I' zurückzusetzen und anschließend einen einzelnen Wert zu verändern. Sie können dann sehr schön mitansehen, welche Wir- kung dies auf die Sprites hat.
2) DER SPRITE-ANIMATOR
Mit dem Sprite-Animator können Sie die Bild-Animationssequenz für die Sprites festlegen. Sie können maximal 16 ver- schiedene Spriteblöcke definieren, die zyklisch für ein Sprite durchgeschaltet werden können. In der Mitte des Bild- schirms sehen Sie hier ein Fenster, in dem in hexadezimaler Schreibweise die Folge der Spriteblocknummern angegeben ist. Die Reihenfolge geht zeilenweise von links nach rechts. Möchten Sie eige- ne Sprites verwenden, so müssen Sie die- se vorher aus dem Disk-Menu heraus gela- den haben. Bei der Angabe der Sprite- blocknummern ist zu beachten, daß Sie die Adresse Ihrer Sprites kennen müssen. Haben Sie z.B. ein Sprite an Speicher- stelle $2000 (dez. 8192) stehen, so müs- sen Sie wiefolgt den Spriteblock berech- nen:
$2000 = dez. 8192 8192 / 64 = 128 dez. 128 = $80
Um die Animationsfolge zu editieren kön- nen Sie den Blinkcursor (Wert blinkt) mit Hilfe der Cursortasten durch das Fenster bewegen und mit den Tasten '0' bis '9', sowie 'A' bis 'F' einen hexade- zimalen Wert eintragen. Mit den Tasten '+' und '-' können Sie die Spritenummer des aktuellen Sprites erhöhen, bzw. er- niedrigen. Mit 'F1' und 'F3' kann die Verzögerung bis zum Einschalten des nächsten Spriteblocks verlangsamt, bzw. beschleunigt werden. Sie können die Ani- mation für jedes der acht Sprites ein- zeln festlegen. Es wird demnach auch immer nur das Sprite auf dem Bildschirm dargestellt, das gerade editiert wird.
3) SPRITE-POINTER
Hier können Sie die Register des VIC verändern, um die Grundeinstellungen der Sprites zu manipulieren. Die hier einge- stellten Werte werden später dann, beim Starten der Animationsroutine, automa- tisch initialisiert. In der Mitte des Bildschirms befinden sich die Sprites, die sich nach dem eingestellten Sinus bewegen. An ihnen erkennen Sie die Ände- rungen der VIC-Register direkt. Um die Werte gezielt verändern zu können soll- ten Sie sich mit der Programmierung des VIC ein wenig auskennen (ich verweise da auf einen Grafik-Kurs, den wir vor eini- ger Zeit in der MD veröffentlichten). Hier nun eine Liste der veränderbaren Werte und deren VIC-Registeradressen (wenn Sie sich mit dem VIC auskennen, dann können Sie sich so direkt auf die Register beziehen):
Beschreibung VIC-Register ----------------------------------------
Sprite an/aus 21 Y-Vergrößerung an/aus 23 Sprite/Hintergrund-Priorität 27 Muticolor an/aus 28 Y-Vergrößerung an/aus 29 Sprite Mulicolor-Farbe 1 37 Sprite Mulicolor-Farbe 2 38 Farbe von Sprite 0 39 Farbe von Sprite 1 40 Farbe von Sprite 2 41 Farbe von Sprite 3 42 Farbe von Sprite 4 43 Farbe von Sprite 5 44 Farbe von Sprite 6 45 Farbe von Sprite 7 46
Durch die Werte bewegen Sie sich mittels 'CRSR UP' und 'CRSR DOWN'. Mit 'CRSR LEFT' und 'CRSR RIGHT' können Sie den Cursor innerhalb eines Wertes hin- und herbewegen. Zugelassene Eingabetasten sind '0' bis '9', sowie 'A' bis 'F'. Mit 'RETURN' kehren Sie ins Hauptmenu zurück. ACHTUNG: Der Wert, der die Sprites ein- und ausschaltet (Reg. 21) wird während des Editierens noch nicht direkt über- nommen. Wenn Sie die Änderung initiali- sieren wollen, so müssen Sie mit 'RE- TURN' ins Hauptmenu zurückkehren und anschließend den Menupunkt "Sprite- Pointer" nochmals aufrufen! 4) DISK MENU Hier können Sie wie im Hauptmenu einen von fünf Menupunkten aufrufen: PROGRAMM LADEN Möchten Sie eigene Sprites zum editieren verwenden, so müssen Sie diese in den ASM nachladen. Geben Sie hierzu unter diesem Menupunkt den Filenamen Ihrer Sprite-Datei an, und bestätigen Sie mit 'RETURN'. Wird das File auf der einge- legten Diskette gefunden, so erscheint neben dem Filenamen die Startadresse des Files in hexadezimaler Schreibweise. Sie können diese Adresse mit 'RETURN' bestä- tigen, oder aber Ihren Wünschen entspre- chend ändern. Beachten Sie bitte, daß der ASM mit dem ersten 16KB-Block des VIC arbeitet, so daß nur Adressen von $0000 bis $4000 (dez. 0 bis 16384) sinn- voll sind. Sprites an höheren Adessen können mit dem Spritepointer nicht mehr adressiert werden. Während das angegebene File geladen wird, wird die Ladeadresse hinter der Startadresse angezeigt. SINUS SAVE Hiermit speichern Sie die momentanen Sinus-, Animaitions- und VIC- Einstellungen inklusive der IRQ- Animationsroutine ab. Geben Sie hierzu den Filenamen an und drücken Sie 'RE- TURN'. Nun können Sie das High-Byte der Startadresse editieren. ASM gibt hier den Wert $C0 (für $C000 = dez. 49152) vor. In der Regel sollte diese Starta- dresse in Ordnung sein. Ist der gewünschte Wert eingegeben, so drücken Sie abermals 'RETURN'. Es wird nun der Sinusplayer ab der angegebenen Adresse gespeichert. Mit einem SYS-Aufruf an diese Adresse können Sie das Playerpro- gramm starten. Wenn Sie Adresse $C000 als Startadresse gewählt haben, ge- schieht dies mit "SYS 49152". Sie soll- ten anschließend Ihre Sprites auf dem Bildschirm herumhüpfen sehen. Achten Sie bitte darauf, daß die eigent- lichen Spritedaten NICHT mitgespeichert werden. Sie müssen die Sprites von Ihrem eigenen Programm an die richtige Adresse laden. DIRECTORY Zeigt das Inhaltsverzeichnis der einge- legten Diskette an. Mit 'SPACE' wird die Ausgabe angehalten, bzw. fortgesetzt. Mit 'RUN/STOP' wird abgebrochen. ZURÖCK ZUM HAUPTMENU Es wird zum Hauptmenu zurückgekehrt (wer hätte das gedacht).
EXIT Wählen Sie diesen Punkt, so wird Ihnen noch eine letzte Chance gegeben ins
Hauptmenu zurückzukehren. Andernfalls wird ein RESET durchgeführt und somit das Programm beendet.
(ub)