Magic Disk 64

home to index to html: MD9407-KURSE-IRQ-KURS_9.3.html
       Forsetzung IRQ-Kurs (Teil9)      
----------------------------------------
SPR09:  pha       ;Prozessor-Regs.      
        txa       ; retten (dieser Teil 
        pha       ; wird bei einem IRQ  
        tya       ; abgearbeitet!)      
        pha                             
direct9:ldx $F9   ;Setzen der Werte für 
        lda $99,x ;Spr9 in VIC-Spr1     
        ...                             
Wie Sie sehen, wird durch den Sprung auf
"direct9"  lediglich  der  IRQ-Teil  der
Routine übersprungen. Ansonsten ist  die
Routine  identisch  mit  "SPR8".  Ebenso
existieren jeweils eigene  Routinen  für
die  Sprites von 9 bis 15. Sollten weni-
ger als 15 Sprites  dargestellt  werden,
so  wird,  wie  bei  SPR8 auch schon er-
sichtlich,  auf  die  Routine  "BORDIRQ"
gesprungen.  Sie  steht ganz am Ende des
Programms und setzt  "BORD"  wieder  als
nächste  IRQ-Routine und beendet den ak-
tuellen IRQ. Sie wird ebenfalls  abgear-
beitet,  wenn  das fünfzehnte, virtuelle
Sprite initialisiert wurde, so  daß  der
gesamte Multiplex-Vorgang nocheinmal von
vorne beginnen kann.                    
Dies wäre es dann wieder einmal für die-
sen Monat. Ich möchte Sie noch dazu ani-
mieren,  ein  wenig  mit  den Multiplex-
Routinen herumzuexperimentieren.  Versu-
chen  Sie doch einmal 24 Sprites auf den
Bildschirm zu bringen! Im  übrigen  sind
nicht  immer  alle  16  Sprites  auf dem
Bildschirm darstellbar. Ist der  Abstand
zwischen  zwei  virtuellen  Sprites, die
durch das selbe  "echte"  Sprite  darge-
stellt werden, kleiner als 22 Rasterzei-
len,  so  erscheint  das  zweite  Sprite
nicht  auf  dem  Bildschirm. Desweiteren
ist aus dem Multiplex-Demo2 ersichtlich,
daß es auch  Probleme  mit  der  Sprite-
Priorität gibt. Dadurch, daß die Sprites
umsortiert  werden  müssen, kann es pas-
sieren, daß manche zunächst Sprites vor,
und beim nächsten Bildaufbau hinter  an-
deren Sprites liegen. Da man die Sprite-
Priorität  nicht  beeinflussen kann, und
Sprites mit kleinen Spritenummern  Prio-
riät  vor  Sprites mit großen Spritenum-
mern haben, kommt  es  hier  zu  kleinen
Darstellungsfehlern,  die  leider  nicht
behoben,  sondern  lediglich  unsichtbar
gemacht  werden  können, indem man allen
Sprites dieselbe Farbe  gibt.  In  einem
Spiel,  in  dem  es wichtig ist, daß die
Spielfigur immer vor allen  anderen  Ob-
jekten  zu sehen ist, kann man aber auch
nur die Sprites von 1-7 multiplexen, und
Sprite 0 unberührt  von  den  restlichen
lassen.  Die  Routine kann dann zwar nur
15 Sprites darstellen, korrigiert jedoch
den obigen Fehler.  Wie  Sie  sehen  ist
auch  dieser Raster-Effekt in vielfachen
anwendeungsspezifischen  Kombinationsmö-
glichkeiten umsetzbar.                  
                                    (ub)
Valid HTML 4.0 Transitional Valid CSS!