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)