★ APPLICATIONS ★ DIVERS ★ The Animator ★ |
The Animator (CPC Amstrad International) | Applications Divers |
Bewegungen perfekt simuliert Dieses Programm ermöglicht Ihnen, Bildfolgen komprimiert abzuspeichern und wieder darzustellen. Es eignet sich insbesondere zur Erstellung von Grafikdemos und animierten Programm vorspännen. Es kann aber z.B. auch verwendet werden, um in einem selbstgeschriebenen Basic-Adventure animierte Grafiken auf den Bildschirm zu bringen.
Der Creator Die Datei "CREATOR.BIN" wird folgendermaßen geladen: SYMBOL AFTER 256 : MEMORY &4FFF : LOAD"CREATOR.BIN",&A000 : CALL &A000Diese Befehlsfolge sollten Sie an den Anfang des Programms stellen, das die Animationsdatei erstellen soll. Der Creator dient zum Erstellen von Animationen mit maximal 64 Einzelbildern. Er stellt folgende Befehle zur Verfügung:1.|NEWANIM ,@nanie$ ,x,y,br,ho,typ :Dieser Befehl öffnet eine neue Animationsdatei. "name$" legt hierbei den Dateinamen fest. Mit "x,y,br" und "ho" wird der Bereich des Bildschirms festgelegt, dessen Inhalt abgespeichert wird. Damit kann man die Animation auf einen kleinen Bereich des Bildschirms beschränken und spart so Specherplatz. x und y legen die linke obere Ecke dieses Bereichs fest. Für x können Werte von 0 bis 79, für y Werte von 0 bis 199 eingesetzt werden, wobei y=0 die oberste Bildschirmzeile ist. Beim Setzen der Breite und Höhe des Bereichs (brund ho) muß beachtet werden, daß x=br nicht größer als 80 und y+ho nicht größer als 200 werden darf. Der Parameter-Typ schließlich legt den Animationstyp fest. Es sind folgende Optionen vorhanden:
Alle Optionen können auch miteinander kombiniert werden. Will man z.B. eine Endlosanimation erzeugen, bei der das erste Bild als Screen abgespeichert wird, so muß man als Animationstyp 5 ( = 1 +4) wählen. 2. |NEXTPIC :Dieser Befehl schreibt die Unterschiede zwischen der neuen (auf dem Bildschirm befindlichen) Animationsphase und dem alten Bild in die Animationsdatei. Beim ersten NEXTPIC-Aufruf nach dem Öffnen einer neuen Animationsdatei wird entweder das Bild als Screen abgespeichert (Option 1) oder ebenfalls komprimiert in die Animationsdatei geschrieben. 3. |ENDANIM :Die Animationsdatei wird geschlossen. Dieser Befehl muß nach dem Abspeichern des letzten Bildes ausgeführt werden. 4. |BORDER :Dieser Befehl zeigt den mit NEWA-NIM gewählten Bildschirmbereich durch einen Rahmen an. Alles, was sich innerhalb dieses Rahmens befindet. wird bei einem NEXTPIC-Aufruf abgespeichert. 5. |MEMORY,@m% :Dieser Befehl gibt in der angegebenen Variablen den Speicherplatz an, den die Animation bis jetzt benötigt, wenn sie später ins RAM geladen wird (auf der Diskette ist die Animationsdatei um 1/7 größer). Die angegebene Variable muß zuvor schon einmal verwendet worden sein. Bsp.: m%=0:|MEMORY,@m% (m% enthält nun den Speicherplatzbedarf) 6. |LOADSCREEN,@name$ :Dieser Befehl dient zum Laden einer Bilddatei unter dem Namen name$ in den Bildschirmspeicher, ohne daß hierfür ein Kassettenpuffer benötigt wird. Man kann z.B. mit einem Malprogramm den Hintergrund zeichnen/diesen bei jedem neuen Bild laden und danach die Animation zeichnen. Oder man zeichnet die Animationsphasen mit dem Malprogramm, speichert jede Phase einzeln ab und erzeugt daraus mit LOADSCREEN und NEXTPIC eine Animationsdatei. Der Animator Dieses Programm dient zum Abspielen der mit dem Creator erstellten Animationsdateien. Geladen wird er folgendermaßen:
Die Variable adr gibt hierbei die erste Speicheradresse an, die für die Animationsdaten verwendet werden darf. Wird z.B. für adr ein Wert von &3000 gewählt, so kann der Bereich von &3000-&9EFF für Animationsdaten verwendet werden. Das entspricht einer 28416 Byte langen Animation. Um Animationen zu laden und abzuspielen, stellt das Programm folgende Befehle zur Verfügung: 1. |LOADAMM,@name$,adr,lmod : Dieser Befehl lädt eine Animation mit dem Namen name$ in den Arbeitsspeicher. Die Variable adr gibt hierbei die Speicheradresse an, an die die Animation geladen werden soll (siehe oben). Es kann immer nur eine einzige Animation im Speicher stehen, bereits vorhandene Animationen werden beim Laden einer neuen gelöscht. Der Parameter lmod hat eine besondere Bedeutung. Wird er auf 1 gesetzt, so wird der Bildschirm beim Laden gelöscht und als Kassettenpuffer mißbraucht. Will man den Bildschirminhalt erhalten, so muß man diesen Parameter auf 0 setzen. Der Kassettenpuffer wird dann im Datenspeicher angelegt, was aber zur Folge hat, daß 2048 Bytes weniger für die Animation zur Verfügung stehen. 2. |CYCLE,ge,sfarb,afarb,@col%(0) : Mit diesem Befehl kann man während der Animation in definierten Farbbereichen die Farben "durch-rotieren", das heißt, Pen 1 erhält die Farbe von Pen 2, Pen 2 die Farbe von Pen 3 usw. Der Parameter "ge" gibt dabei an, nach wie vielen Animationsphasen man die Farben wechseln kann. Es können nur Werte von 1 bis 255 angegeben werden, ein Wert von 1 bedeutet, daß nach jedem neuen Bild die Farben wechseln, "sfarb" legt fest, bei welcher Farbe (0-15) der Bereich beginnt, in dem gewechselt wird, "afarb" legt die Größe dieses Bereichs fest, das heißt, wie viele Farben "durchrotieren". In dem Ganzzahlfeld "col%" werden die Farben. die man für den Farbwechsel verwendet, festgelegt, es kann also Werte von 0 bis 26 enthalten. Das Feld muß genauso viele Elemente enthalten, wie in "afarb" festgelegt. ACHTUNG: Der CYCLE-Befehl muß nach LOA-DANIM ausgeführt werden, da das Laden einer Animation alte Farbwechsel-Kommandos löscht. 3. |SHOWANIM,ge,mod : Dieser Befehl dient zum Abspielen einer Animation. Dabei ist zu beachten, daß der Bereich des Bildschirms, auf dem die Animation dargestellt wird (siehe NEWANIM), nicht vorher gelöscht und auch der Bildschirmmodus nicht festgelegt wird. Man muß dies also vor" dem SHOWANIM-Aufruf selbst erledigen. Der Parameter ge dient zum Einstellen der Abspielgeschwindigkeit und gibt die Verzögerung pro Bild in 1/300 Sekunden an. Die Variable "mod" legt den Abspielmodus fest, es sind folgende Werte möglich: 0: keine Unterbrechung der Animation möglich.
Fehlermeldungen Bei der Arbeit mit dem Creator und Animator können folgende Fehlermeldungen auftreten:
|