Magic Disk 64

home to index to html: MD9011-UTILITIES-OCTOSPRITE.html
               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)  ver-
wendet. Der Trick dabei ist, daß einfach
mehrere  Sprites  aneinandergehängt  und
überlagert werden.                      
Wenn Sie das Programm  geladen  und  ge-
startet haben, sehen Sie  einen  Editor-
screen, auf dem  folgende  Anzeigen ent-
halten sind:                            
Links befindet sich ein  gezoomter  Aus-
schnitt des sich gerade im Editor-Buffer
befindenden Objektes.  (Nach  dem  Start
dürfte dies meistens "Grafikmüll" sein!)
Daneben  entdecken   Sie   die   Cursor-
koordinaten,  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
(Schreib- oder Lesezugriffe)) an.       
Zur Objektorganisation:  Es  wird  immer
ein Spritefeld editiert,  das  sich  aus
vier Multi- und aus  vier  Singlecolour-
sprites   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 über-
lappt. Den Bereich  eines  Single/Multi-
colour 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
Single- und  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  über-
schrieben.                              
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  Bild-
blöcke ein, die später  nacheinander  in
den Editorbuffer gelesen werden  sollen.
CONTROL + A (Bildblöcke animieren)      
Die bei dem vorhergehenden Punkt angege-
benen  Bildblöcke  werden  in  der  ent-
sprechenden Reihenfolge  auf  den  Bild-
schirm gebracht. Die Abspielgeschwindig-
keit  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  Koordi-
natenwert.   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  ge-
spiegelt.                               
COMMODORE + M                           
Diese   Funktion    kopiert    bestimmte
Speicherbereiche in  die  ersten  beiden
Quadranten.   Links   sehen   Sie    den
Speicherbereich des Single-  und  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  Farb-
informationen   keine   Daten   verloren
gehen.                                  
Q (Nur im Multicolourmodus)             
Hiermit definieren Sie aus  dem  Editor-
buffer 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 Cursor-
position setzen.                        
$ (SHIFT + 4)                           
Das  Inhaltsverzeichnis  einer  Diskette
wird auf dem Bildschirm ausgegeben.     
So, damit sind jetzt alle Funktionen er-
klä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 $40a0.
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 $40a0 abgelegt. Für die  8
Sprites eines Bildblockes "n" liegen bei
$4000+n*10  die   Farbcodes   des   VIC-
Registers $d025 bis $d02e.              
                                    (om)
Valid HTML 4.0 Transitional Valid CSS!