★ APPLICATIONS ★ DIVERS ★ X-Basic Graphikerweiterung für 464 ★ |
RSX X-Basic - Graphikerweiterung (CPC Amstrad International) | Applications Divers |
Zunächst möchte Ich Ihnen ein großes Lob aussprechen, für X-Basic. Eine wirklich tolle und sinnvolle Erweiterungsmöglichkeit, mit der man den Komfort eines echten CPC-Basicbefehls ausnutzen kann. Doch nun zu den von mir geschriebenen Erweiterungen unter X-Basic. Also, auf geht's mit Programm Listing Nr.1 Der Polygon-Befehl nutzt zwei Routinen des CPC's aus. Die eine setzt den Graphikursprung (=MOVE-Befehl), die andere zieht eine Linie zwischen Graphikursprung und Endkoordinaten (=DRAW-Befehl). Das bedeutet aber auch, daß mindestens zwei Koordinatenpaare angegeben werden müssen. Eine für die Anfangskoordinaten, und eine für die Endkoordinaten. Die maximale Anzahl an Koordinatenpaaren ist dagegen nur durch die maximale Länge einer Basiczeile, also 255 Zeichen, beschränkt. Der Polygon-Befehl ist vor allem als Ersatz für mehrere Draw-Kommandos oder Datazeilen gedacht Wichtig ist nur, die Koordinaten müssen als absolute Koordinaten angegeben werden. Hier nun das Format: Kommando: Polygon < x-Anf. > , < y-Anf > ,< x1 > , < y1 >, < x2 > ,< y2 > ... Und weiter gehts mit Programm Listing Nr.2. Der Pointer-Befehl stellt das Zeichen Nr. 250 als Pointer bzw. bewegliches Zeichen zur Verfügung. Bewegt werden kann das Zeichen nur mit dem Joystick, nicht mit den Cursortasten. Der Pointer ist als Ergänzung zu den Windowbefehlen von X-Basic gedacht und ermöglicht somit eine äußerst komfortable und benutzerfreundliche Programmierung von eigenen Programmen. Der Pointer bewegt sich im übrigen in acht Richtungen und auf Graphikcursorposition. Die jeweilige Position läßt sich in Basic durch die System-variablen XPOS und YPOS auslesen. Der Pointer wird durch Drücken der Feuertaste gelöscht und die Initiative wieder an Basic übergeben. Hier wiederum das Format: Kommando: POINTER < x-Koord. > ,< y-Koord. > Nachtrag: Die letzten x- und y-Koordinaten lassen sich aus den Speicherstellen XPOS und YPOS (siehe Listing Nr.2) folgendermaßen auslesen: PRINT PEEK(x/ypos)*256+PEEK(x/ypos+1) <<< Da der Pointer im Graphikfenster gezeichnet wird, wird er auch durch dieses beschränkt. Er verschwindet beim Überschreiten der Grenzen. Durch einen POKE &A065,&18 wird während der Bewegung eine Linie im XOR-Modus (wichtig!) gezogen. Durch POKE &A065,&BB wird dieser Modus wieder ausgeschaltet. Durch ein CALL &A012 wird der Pointer auf die Koordinaten beim letzten Aussprung gesetzt Einen Pfeil als Pointer erhält man folgendermaßen: SYMBOL 250,252,240,240,248,156,142,6 <<< Und zu guter letzt noch Programm Listing Nr.3 Der Boxbefehl ermöglicht es, eine beliebige rechteckige oder quadratische Fläche in der jeweiligen Graphik-Hintergrundfarbe oder einem selbstgewählten Bitmuster auszufüllen.Wird das Bitmuster nicht mit angegeben, so wählt das Programm GPAPER als CLG-Farbe aus. Die Routine arbeitet sehr schnell, da einfach das Graphikfenster auf entsprechende Größe gebracht und mit CLG gelöscht wird. Anschließend wird die GPAPER-Farbe = 0 gesetzt und das Graphikfenster auf Bildschirmgröße zurückgesetzt. Das Format: Kommando: BOX < x2 > , < y1 > , < x2 > , < y2 > , < Bitmuster > Nachtrag: In welcher Reihenfolge, ob nun zuerst das kleinere Koordinatenpaar oder das größere, ist unerheblich. Als Bitmuster kann eine 8 Bit große Zahl zwischen 0 - 255 eingesetzt werden. Hier hilft ausprobieren. Hinweis: Alle Angaben zwischen diesen Zeichen < ... > müssen im Kommando angegeben werden, sofern sie normal gedruckt sind. Angaben im Kursivdruck sind wahlweise anzugeben.
|