Der MOS 6567/6569 Videocontroller (VIC-II) und seine Anwendung im Commodore 64
Inhalt 3. Funktionsweise des VIC
3.8. Sprites |
Zusätzlich zu der Text-/Bitmapgrafik kann der VIC acht unabhängige, 24×21 Pixel große, frei bewegliche Objekte darstellen, die "Sprites" (in [2] "MOBs" genannt (Movable Object Blocks)). Die Sprites können beliebig auf dem Bildschirm positioniert werden, man kann sie mit den Bits in Register $d015 (MxE) einzeln ein- und ausschalten, sie mit Register $d017/$d01d in X- und/oder Y-Richtung um den Faktor 2 vergrößern (bei gleicher Auflösung von 24×21 Pixeln), mit Register $d01c (MxMC) den Standard- oder Multicolor-Darstellungmodus wählen, mit Register $d01b (MxDP) die Anzeigepriorität in Bezug zur Text-/Bitmapgrafik festlegen und jedem Sprite eine eigene Farbe zuordnen (Register $d027-$d02e). Außerdem besitzt der VIC die Möglichkeit, Kollisionen zwischen Sprites untereinander oder zwischen Sprites und der Text-/Bitmapgrafik zu erkennen und ggf. einen Interrupt auszulösen (siehe 3.12.). Die Position der linken oberen Ecke eines Sprites wird mit den zugehörigen Koordinatenregistern angegeben (MxX, MxY). Für die Y-Koordinate stehen 8 Bit, für die X-Koordinate 9 Bit zur Verfügung (die höchsten Bits aller Sprite-X-Koordinaten sind in Register $d010 gesammelt).
3.8.1. Speicherzugriff und Darstellung | 3.8.2. Priorität und Kollisionserkennung