Magic Disk 64

home to index to text: MD9011-UTILITIES-OCTOSPRITE.txt
               OCTOSPRITE               
               

Der c64 muß sich nicht immer vor dem großen Bruder Amiga verstecken. Mit Spielen wie HAWKEYE wird dies eindeutig bewiesen, denn dort werden übergroße Sprites ( bei gleicher Auflösung) verwendet. Der Trick dabei ist, daß einfach mehrere Sprites aneinandergehängt und überlagert werden.
Wenn Sie das Programm geladen und gestartet haben, sehen Sie einen Editorscreen, auf dem folgende Anzeigen enthalten sind:
Links befindet sich ein gezoomter Ausschnitt des sich gerade im Editor-Buffer befindenden Objektes.( Nach dem Start dürfte dies meistens " Grafikmüll" sein!) Daneben entdecken Sie die Cursorkoordinaten, den aktuellen Quadranten und das eigentliche Objekt. Darunter sehen Sie ein Display mit dem Wort" TRANSPNT" und einen Pfeil, der die aktuelle Zeichenfarbe anzeigt. Wenn Sie den Pfeil auf " TRANSPNT" stellen, so können Sie einen Punkt " transparent" darstellen ( löschen) .
Das Display " LAST PICBLK" zeigt den zuletzt angesprochenen Objektspeicher ( Schreiboder Lesezugriffe)) an.
Zur Objektorganisation: Es wird immer ein Spritefeld editiert, das sich aus vier Multiund aus vier Singlecoloursprites zusammensetzt. Diese sind quadratisch angeordnet, d. h. Sie haben folgende Positionen:

(x,y)     1 MCS & 1 SCS (Sprites 1 & 0) 
(x+SPB,y) 1 MCS & 1 SCS (Sprites 3 & 2) 
(x,Y+SPH) 1 MCS & 1 SCS (Sprites 5 & 4) 
(x+SPB,Y+SPH) 1MCS & 1SCS (Sprites 7&6) 
MCS - Multicoloursprite                 
SCS - Singlecoloursprite                
SPB - Spritebreite 24                   
SPH - Spritehöhe   21                   

Dabei werden die MCSs von den SCSs überlappt. Den Bereich eines Single/ Multicolour Spritepaares nennen wir Quadrant, bei dem Sie außerdem eine bestimmte Spritezusatzfarbe nutzen können ( F7 !) .
Die Funktionen:
Der Cursor wird durch den Joystick in Port #2 gesteuert. Drücken des Knopfes bewirkt das Setzen eines Punktes mit den vorher eingestellten Eigenschaften ( F-Tasten) .
Tasten "0" bis "9" und " a" bis " f" Sie ändern die aktuelle Zeichenfarbe durch drücken der Hexadezimalziffern "0" bis " f" . Diese Codes stimmen mit den Standardfarbwerten des c64 überein.
Zeigt der Pfeil auf eine Zusatzfarbe, so wird nur die Farbe des aktuellen Quadranten geändert.
SPACE Mit der Spacetaste schalten Sie zwischen Singleund Multicoloureditor um. Den aktuellen Modus erkennen Sie am Cursor, der im Singlecolourbetrieb halb so breit ist wie im Multicolourmodus.
F1 Lösch-Modus anschalten F3 Auf gemeinsame Spritefarbe #1 schalten ( nur MC-Modus) F5 Auf gemeinsame Spritefarbe #2 schalten ( auch nur im MC-Modus) F7 schaltet im Multicolourmodus auf die Zusatzfarbe und im Singlecolourmodus auf die Zeichenfarbe im aktuellen Quadranten um.
SHIFT CLR/ HOME Der aktuelle Quadrant wird von Sprites aller Art befreit ( löschen) .
CONTROL + W Hiermit schreiben Sie den Editorbuffer in einen Bildblock im Speicher ( Hex-Zahl angeben!) . Ein bereits vorhandener Bild- block wird bei diesem Vorgang überschrieben.
CONTROL + R Mit dieser Funktion lesen Sie einen Bildblock wieder in den Editorbuffer, der dadurch auch wieder gelöscht wird.
COMMODORE + A ( Animationsequenz angeben) Tippen Sie hier die Nummer jener Bildblöcke ein, die später nacheinander in den Editorbuffer gelesen werden sollen.
CONTROL + A ( Bildblöcke animieren) Die bei dem vorhergehenden Punkt angegebenen Bildblöcke werden in der entsprechenden Reihenfolge auf den Bildschirm gebracht. Die Abspielgeschwindigkeit können Sie mit dem Joystick regulieren. SPACE bricht die Animation ab.

CURSORTASTEN                            
Mit diesen Tasten  verschieben  Sie  das

Objekt innerhalb der acht Sprites um horizontal 2 oder vertikal um 1 Koordinatenwert. Die Zusatzfarben werden hierbei nicht mitgescrollt.
CONTROL + F Die gesamte Fläche wird mit der aktuellen Zeichenfarbe ausgefüllt.
L ( Linienmodus) Ein Druck auf den Feuerknopf bedeutet nun nicht mehr, daß ein Punkt gesetzt wird, sondern bewirkt das Setzen von Linienpunkten, wie man es von jedem Zeichenprogramm gewohnt ist.
CONTROL + S Alle 16 Bildblöcke werden nach Eingabe des Filenamens abgespeichert.
CONTROL + L Alle 16 Bildblöcke werden mit dieser Funktion wieder eingeladen.

M                                       
Ein  Objekt  wird  an  der  Y-Achse  ge-
spiegelt.                               

SHIFT + M Ein Objekt wird an der X-Achse gespiegelt.
COMMODORE + M Diese Funktion kopiert bestimmte Speicherbereiche in die ersten beiden Quadranten. Links sehen Sie den Speicherbereich des Singleund rechts den des Multicoloursprites. Diese Adresse läßt sich mit dem Joystick verändern.
<( Pfeil links) Die Bildschirmhintergrundfarbe wird um einen Wert erhöht.
RUN/ STOP Durch Druck auf RUN/ STOP verlassen Sie Octosprite. Mit SYS 24576 läßt es sich wieder starten, wobei außer den Farbinformationen keine Daten verloren gehen.
Q ( Nur im Multicolourmodus) Hiermit definieren Sie aus dem Editorbuffer heraus einen Block. Dabei müssen die beiden Eckpunkte ( oben links und unten rechts) angegeben werden.

*( Nur im Multicolourmodus) Den soeben definierten Block können Sie mit dieser Taste an die aktuelle Cursorposition setzen.
$( SHIFT +4) Das Inhaltsverzeichnis einer Diskette wird auf dem Bildschirm ausgegeben.
So, damit sind jetzt alle Funktionen erklärt. ABER: Wie kommt man jetzt an seine selbst kreierten Sprites ' ran?
Speichern Sie dazu die Bildblöcke mit CONTROL + S ab. In diesem File finden Sie dann sämtliche Sprites, die an den nachfolgend erklärten Adressen liegen.
Das File ist 33 Blocks lang und belegt den Speicherbereich von $2000 bis $40 a0 .
Der erste Bildblock liegt bei $2000, der zweite bei $2200 .
Allgemein: Bildblock n =$2000+( n*200)(8 Sprites benötigen $200=512 Bytes an Speicherplatz) .
Innerhalb eines Bildblockes, der hier bei Adresse " x" liegen soll, befinden sich nun folgende 8 Sprites:
x : SCS des linken oberen Quadranten x+64 : MCS des linken oberen Quadranten x+128 : SCS des rechten oberen Quadranten x+192 : MCS des rechten oberen Quadranten x+256 : SCS des linken unteren Quadranten x+320 : MCS des linken unteren Quadranten x+384 : SCS des rechten unteren Quadranten x+448 : MCS des rechten unteren Quadranten Wenn Sie also ein MCS im linken oberen Quadranten kreiert haben, der drei Animationsstufen besitzt und sich über die Bildblöcke 4,5 und 6 erstreckt, so stehen diese ab den folgenden Werten im Speicher:

x1 = $2000+4*$200+64 = $2840            
x2 = $2000+5*$200+64 = $2a40            
x3 = $2000+6*$200+64 = $2c40            

Die Farbwerte werden im Speicherbereich von $4000 bis $40 a0 abgelegt. Für die 8 Sprites eines Bildblockes " n" liegen bei $4000+ n*10 die Farbcodes des VIC-Registers $ d025 bis $ d02 e.
( om)

Valid HTML 4.0 Transitional Valid CSS!