
*********************************************************************
*
*  GAT [Graphic & Animation Tool] v3.01
* ============================================================
*
*  (c) 2000 by TT-Soft
*      http://www.East-Power-Soft.de
*      tt-soft@east-power-soft-de
*
*********************************************************************

+---------------------------------
| Einleitung:
+---------------------------------

GAT wurde fr Programmierer entwickelt, die Ihre Programme (Spiele 
etc.) mit beweglichen Grafiken (Sprites) ausstatten mchten.
 
Es ist oftmals schon schwierig genug gute Grafiken zu entwickeln, denn 
in erster Linie ist man ja Programmierer und nicht Grafiker. Noch 
schwieriger aber wird es wenn man vor hat diese Grafiken dann auch 
noch zu animieren. Hier setzt das GAT an.

Du kannst Deine Grafiken aus welchen Quellen auch immer beziehen (GIF 
Animationen, Einzelbilder o.a.) wandelst sie in BMP's um (256 Farben 
und max. 48x48 Pixel) und schon kann es losgehen. Mit dem GAT kannst 
du diese Grafiken importieren, nachbearbeiten und als Sequenz oder 
Einzel- bilder speichern. Das Format (Details weiter hinten) ist 
einfach strukturiert, so da es sehr einfach ist, die fertige Sequenz 
in deinem Programm zu benutzen. Das Programm wurde sehr intuitiv 
gestaltet, solange man die Hilfstexte nicht berliest. Sollte es 
dennoch Fragen geben - gibt's hier vielleicht die Antwort.


+---------------------------------
| Start:
+---------------------------------

Nach dem Starten des Programms erblickst Du den Hauptbildschirm. Im 
oberen Teil des Bildschirms siehst Du 10 kleine Fenster in denen bis 
zu 10 Einzelbilder abgelegt werden knnen. Die Einzelbilder erreichst 
Du schnell ber die Funktionstasten F1 - F10 zu jedem Zeitpunkt. Das 
jeweils aktive Bild wird gro dargestellt und die F-Taste wird gelb 
gekennzeichnet.

Im Hauptmen hast du nun die Wahl zwischen folgenden Punkten:

1...Sequenz neu...
dieser Punkt erzeugt eine komplett neue Sequenz (hnlich wie "alles 
lschen", jedoch mu der Bildinhalt nicht gelscht werden. Das macht 
aus folgendem Grund Sinn: nach aktivieren des Menpunktes wirst Du 
nach der Gre der Bilder gefragt. Nehmen wir an Du mchtest alle 
Bilder Deiner Sequenz um 2 Pixel vergrern, dann kannst Du das mit 
diesem Menpunkt am schnellsten tun. Einfach die neue Gre auswhlen, 
Enter drcken und fertig. Besttigst Du die Frage nach dem Lschen mit 
(J) wird eine neue, leere Sequenz erzeugt. Verkleinerst Du eine 
Sequenz, wird der linke obere Bildschirmausschnitt beibehalten.

2...Sequenz laden...
ldt eine Sequenz ab der Bildposition die Du vorgibst. Angenommen Du 
hast schon 4 Bilder (F1-F4) gezeichnet, dann kannst du ab Position F5 
trotzdem noch eine Sequenz laden in der vielleicht noch Bilder sind 
die du brauchst (zum kopieren etc.). Hat die neue Sequenz mehr Bilder 
als geladen werden knnen, werden einfach die letzten weggelassen.

3...Sequenz speichern
speichert eine Sequenz und zwar vom ersten (F1) Bild bis zu dem was
Du angibst.

4...Einzelbild neu
erzeugt auf der gewnschten Position ein neues Bild in der gewhlten 
Gre, wobei der Inhalt gelscht werden kann, aber nicht mu.

5...Einzelbild laden
ldt ein Einzelbild auf die vorgegebene Position. Das Bild kann GAT-
Format, TGM-Format oder BMP Format (mit 256 Farben bis max. 48x48 
Pixel) haben.

ACHTUNG: Die Farbpalette von Windows wird durch die DOS-Farben falsch
bersetzt. Wir arbeiten an diesem Problem...

6...Einzelbild speichern
naja, das mu man wohl kaum erklren.

A...Animationsmen
Dies ist wohl der interessanteste Teil des Programms. Zum Erklren der 
Mglichkeiten nehmen wir ein Beispiel an. In diesem haben wir uns ein 
Mnnchen gezeichnet welches vom Bewegungsablauf nach links gehen soll 
und insgesamt 5 Einzelbilder hat. Als erstes mssen die 5 Bilder in 
der richtigen Reihenfolge F1-F5 abgelegt sein. Nach Aufruf des 
Menpunktes (A), mut du nun also F5 als letztes Bild drcken. 
Anschieend <ENTER> und nun siehst du wahrscheinlich ein zappelndes 
Gebilde in der Mitte des Bildschirms. Das ist Deine animierte 
Bildfolge, nur das es noch etwas schnell geht. Das lt sich aber sehr 
schnell mit dem Punkt F-Framepause ndern. Sie gibt an wieviel Zeit 
zwischen den einzelnen Bilder liegt. Die Framepause lt sich von 1-10 
in Einerschritten und dann weiter in 5er Schritten bis 40 festlegen. 
Damit Du nun zum genauen schauen aber nicht immer wieder die 
Framepause ndern mut habe ich einen "S-Slomotionknopf" eingebaut. 
Einfach mal probieren. Weiterhin gibt es die Z-Repetierzeit in 
Sekunden. Sie gibt an wieviel Zeit vergeht bis die Animation erneut 
gestartet wird. Nun zur A-Animationsart. Es gibt zwei 
Einstellmglichkeiten. PING-PONG und VORWRTS. Soll heien, Du kannst 
deine Animation entweder durchlaufen lassen oder einmal vorwrts und 
anschlieend wieder rckwrts. Oftmals erspart das viel Zeit beim 
Zeichnen. Nun aber zum Kern des Animationsmens. Wichtig war mir beim 
schreiben dieses Programms, das ich die Ergebnisse so gut wie mglich 
betrachten kann. Und bei Animierten Grafiken heit das eben das sie 
animiert werden mssen. Somit habe ich die Mglichkeit geschaffen 
jedem Einzelbild einen "Versatz" zuzuordnen. Damit ist nichts anderes 
gemeint als die Verschiebung des Bildes auf dem Bildschirm (in 
Pixeln). Du whlst ein Bild aus (F1, F2 usw.) und bettigst die 
links/rechts/hoch/runter Taste fr die jeweilige Richtung in die sich 
das Bild verschieben soll. Kombinationen sind ebenfalls mglich. Wenn 
du das mit allen Bildern machst, bekommst du sofort einen Eindruck wie 
sich Deine Animation bei tatschlicher Bewegung verhlt, bzw. wie sie 
aussieht. In diesem Zusammenhang wurden dann noch die >SPACE< Taste 
eingebaut. Ein Tastendruck und die Sequenz wird wieder von vorn 
gestartet. Ebenfalls sinnvoll in diesem Zusammenhang ist E-einmal. 
Durch Einschalten dieses Menpunkts wird die Sequenz nach jedem 
Durchlauf neu gestartet. Zum Schlu noch ESC - womit Du das 
Animationsmen wieder verlt, wobei alle eingestellten Werte 
gespeichert werden, so das diese beim nchsten Aufruf nicht erst 
wieder neu eingegeben werden mssen. Der F11 taste kommt hier noch 
eine besondere Bedeutung zu. Mit ihr kannst du den Versatz fr alle 
Bilder gleichzeitig einstellen.

B...Bearbeiten...
Das Bearbeiten einer Grafik ist hier vielleicht nicht ganz so 
komfortabel wie mit diversen Programmen fr Windows, allerdings sollte 
das auch nicht der Zweck der Sache sein. Nach einiger berlegung und 
der Feststellung, das es schon gengend sehr gute und billige oder gar 
kostenlose Grafikprogramme gibt, war es mir wichtiger solche 
bearbeiteten Dateien laden zu knnen (sprich einen BMP-Konverter zu 
schreiben) als ein "tolles Grafikprogramm". In erster Linie soll 
dieser Tool der Animation helfen, bietet aber dennoch verschiedenste 
Tools zur Bildgestaltung. Eine grundstzliche Funktion ist, das ein 
Bereich fr verschiedene Manipulationen markiert werden kann. Die 
geschieht indem die Shift-Taste gehalten wird und ein gewnschter 
Bereich eingerahmt wird. Was mit dem Inhalt des markierten Bereichs 
geschieht, bestimmt anschlieend eine Taste (z.B. >SPACE< zum setzen 
einer Farbe, >ENTF< zum lschen bzw. setzen der "lschen"-Farbe usw.) 
Damit man nun nicht stndig wie ein irrer seine Tastatur abwechselnd 
mit SPACE und Cursortasten qult, wurden die "Followmode" - Tasten 
eingefgt. So schaltet die Taste >F11< den Followmode fr die Setzen-
Farbe ein bzw. aus. Das heit das bei eingeschaltetem Followmode die 
Farbe einfach den Cursorbewegungen folgt.


+-------------------------------------------------------
| Hier aber nun die einzelnen Funktionen:
+-------------------------------------------------------

H-V...Spiegeln...
die Tasten >H< bzw. >V< spiegeln die aktuelle Grafik horizontal bzw. 
vertikal. ber einen kleinen Umweg kann man auch Ausschnitte spiegeln. 
Dazu einfach den gewnschten Bereich markieren, in ein anderes Bild 
kopieren, dort spiegeln und wieder zurck das ganze.

B...Bereich fllen...
hiermit ist das Fllen des markierten Bereichs gemeint. Im einzelnen 
heit das: markiere einen Bereich (z.B. ein Feld von 4x4) drcke nun 
>B<. Jetzt kannst du die Auswahl verschieben und je nach dem ob du 
>SPACE< fr setzen oder >ENTF< fr lschen drckst, kannst du immer 
ein 4x4'er Feld setzen.

G...Fllen grafisch...
fllt genau wie ein Zeichenprogramm alle Zwischenrume mit der
Setzen-Farbe.

L-R-U-D...Scrollen...
scrollt das Bild nach links(L), rechts(R), oben(U) oder unten(D).

T...Tauschen...
Tauschen ist ein recht witziges Tool, der mehr oder weniger aus einem 
Programmierfehler entstanden ist sich aber als uerst ntzlich erwies 
und somit behalten wurde. Whl eine Setzen-Farbe aus. Stell dich 
danach (in deiner Grafik) auf einen Pixel mit der Farbe die im 
gesamten Bild durch die neue ersetzt werden soll. Einfach >T< drcken 
und ...tata... "it's not a bug - it's a feature".

O...Raster ein/aus...
Diese Funktion mu wohl nicht nher erlutert werden. Ausser 
vielleicht das auch bei ausgeschaltenem Raster dieses eingeblendet 
wird wenn die Shift-Taste niedergedrckt wird.

K...Kopieren...
blendet einen zuvor markierten Bereich wieder ein. Dieser kann nun 
verschoben werden und durch bettigen der >Enter< oder >SPACE< Taste 
entweder eingefgt werden, oder der Vorgang wird durch >ESC< 
abgebrochen. Die Taste >EINFG< erfllt brigens den selben Zweck wie 
das >K<.

F...Farbmen...
und dann war da noch die Farbe. In die Farbauswahl gelangt man mit der 
Taste >F<. Prinzipiell kann hier eine Farbe ausgewhlt werden (mit 
hoch/runter/rechts/links) und dann mit >SPACE< fr setzen oder mit 
>ENTF< fr lschen festgelegt werden. Damit man aber bei 30 oder mehr 
verwendeten Farben nicht jedesmal probieren mu welche denn nun die 
richtige setzen Farbe war, wurde eine Art Pipettenfunktion eingefhrt. 
Zur Erklrung. Zeichne einfach mal 5 Punkte in verschiedenen Farben. 
Nun stell dich auf einen der Punkte und drcke >F< - wie du siehst, 
wird dir diese Farbe als erstes angeboten. Nur noch ein druck auf die 
>SPACE< Taste und schon ist das die neue Setzen-Farbe.

Last but not least...
ESC...Programm beenden...mu man wohl auch nicht erklren.

Ach ja eins noch, fr den Fall der Flle das jemand die Palette 
bentigt, die hier verwendet wurde (z.B. um mit einem Windows-Programm 
Grafiken an diese Palette anzupassen), es gibt eine undokumentierte 
Funktion in diesem Programm. Einfach im F...Farbauswahl Men die Taste 
>M< drcken. Daraufhin wird ein Screenshot vom aktuellen Bildschirm 
gemacht (als C:\PALETTE.PCX Datei). Wer allerdings Paint-Shop-Pro als 
Grafik Programm benutzt, kann auf die mitgelieferte Palette (GAT-
PAL.PAL) zurckgreifen.

So und nun ein wenig interna...da ein Programmierer ja nun auch die 
Sequenzen benutzen will, mu er schon wissen wie denn die Dateien 
aufgebaut sind, die die Sequenzen enthalten, damit er sie laden kann.


+-------------------------------------------------------
| Hier also der Aufbau GAT Datei:
+-------------------------------------------------------

Header:
-------

G&ATv3.0 ... 08 Byte
       n ... 01 Byte -> Anzahl Bilder

Daten:
------

Rout:  x ... 01 Byte -> Breite
       y ... 01 Byte -> Hhe
       t ... 01 Byte -> wird derzeit nicht verwendet
   Daten ... nn Bytes in der Form:
                Aussenschleife Bilddaten von links -> rechts
                   Innenschleife Bilddaten von oben -> unten
                      Das Byte gibt jeweils den Farbwert an (0-255)
Rout:  x ... nchstes Bild


Eine einfache Basic Schleife zum Laden einer solchen Sequenz in eine 
Feldvariable she dann etwa so aus:

DIM Bild(10, 48, 48)                       ' Feld fr 10 Bilder mit
                                           ' maximaler Auflsung
OPEN "DATEI" FOR BINARY AS#1               ' Datei ffnen
   A$=SPACE$(8): GET#1,,A$                 ' Header lesen
   IF A$<>"G&ATv3.0" THEN GOTO FEHLER      ' Header prfen
   A$=" ": GET#1,,A$                       ' Anzahl Bilder lesen
   FOR ANZ = 1 TO ASC(A$)                  ' Schleife Anzahl Bilder
      B$="X": GET#1,,B$                    ' Breite Bild lesen
      H$="X": GET#1,,H$                    ' Hhe Bild lesen
      T$="X": GET#1,,T$                    ' wird nicht verwendet
      FOR X = 1 TO ASC(B$)                 ' Schleife links -> rechts
         FOR Y = 1 TO ASC(H$)              ' Schleife oben -> unten
            A$="X": GET#1,,A$              ' Byte lesen
            Bild(Anz, X, Y) = ASC(A$)      ' Byte bertragen
         NEXT
      NEXT
   NEXT
CLOSE
END

FEHLER:
CLOSE
PRINT "Keine GAT Datei!": END

Es liegt beim Programmierer die Daten fr Breite und Hhe der Bilder 
zu speichern, immerhin knnen alle Bilder unterschiedliche Gren 
haben!!!


+-------------------------------------------------------
| Nachtrag:
+-------------------------------------------------------


GAT v3.01 wurde in QuickBASIC und mit Hilfe einer SVGA-Library 
geschrieben. Die Gre des Pro- gramms bersteigt allerdings die 
Fhigkeiten von QuickBASIC, dadurch war es nicht mglich das Programm 
als Quellcode zu verffentlichen. Sollte irgend jemand einen Bug 
finden, so mge er mich bitte benachrichtigen. Auch fr Verbesserungs- 
oder Erweiterungsvorschlge bin ich immer offen. Alle Angaben ohne 
Gewhr.

TT-Soft, Februar 2001
----------------------------------------------------------------------

TT-Soft is a member of East-Power-Soft; please visit our
Homepage -> http://www.East-Power-Soft.de


                    ---=== Ende ===---
