Magic Disk 64

home to index to text: MD9407-KURSE-IRQ-KURS_9.3.txt

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 weniger als 15 Sprites dargestellt werden, so wird, wie bei SPR8 auch schon ersichtlich, auf die Routine " BORDIRQ" gesprungen. Sie steht ganz am Ende des Programms und setzt " BORD" wieder als nächste IRQ-Routine und beendet den aktuellen IRQ. Sie wird ebenfalls abgearbeitet, 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 diesen Monat. Ich möchte Sie noch dazu animieren, ein wenig mit den Multiplex-Routinen herumzuexperimentieren. Versuchen 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 dargestellt werden, kleiner als 22 Rasterzeilen, 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 anderen Sprites liegen. Da man die Sprite-Priorität nicht beeinflussen kann, und Sprites mit kleinen Spritenummern Prioriät vor Sprites mit großen Spritenummern 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 Objekten 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!