Magic Disk 64

home to index to text: MD9001-KURSE-GRAFIKKURS_TEIL_2-2.txt
MD9001-KURSE-GRAFIKKURS_TEIL_2-2.koala.png

Doch nun zum Praktischen. Um ein Sprite expandieren zu können stellt uns VIC 2 weitere Register zur Verfügung. Zum einen hätten wir da Register 29 für die Vergrößerung in X-, zum anderen Register 23 für Vergrößerung in Y-Richtung. Diese beiden Register sind ähnlich Register 16 aufgebaut, das wir ja für die neunten Bits der X-Position eines Sprites verwandten. Hier ist nämlich ebenfalls für jedes der acht Sprites ein Bit reserviert. Möchten wir nun ein Sprite in Xoder Y-Position expandieren, so müssen wir lediglich dessen Bit in Register 23 und/ oder 29 setzen, je nach dem in welche Richtung es vergrößert werden soll.
Hier nochmal eine Öbersicht, welches Bit eines Registers für welches Sprite zuständig ist:

Bit   : 7 6 5 4 3 2 1 0                 
Sprite: 7 6 5 4 3 2 1 0                 

Ist das Expansionsbit eines Sprites also gesetzt, so wird das Sprite vergrößert, ist es gelöscht, so wird es in der nomalen Auflösung dargestellt. Zur Demonstation habe ich Ihnen auf der Rückseite dieser MagicDisk ein kleines Programm namens " SPRITE-EXP" gespeichert. Da können Sie sich unser UFO-Sprite nocheinmal ansehen.

2.) Farbige Sprites:                    

Wenn Sie letzten Monat einmal Sprite 0 auf dem Bildschirm hatten, dann hatte es - fast ganz selbstverständlichdie Farbe Weiß. Merkwürdigerweise war das Sprite 1( wenn Sie dieses einmal eingeschaltet hatten) nicht der Fall. Dieses sollte nämlich direkt nach dem Einschalten des Rechners in sattem Rot geleuchtet haben.
Sie merken schon worauf ich hinaus möchte: man kann einem Sprite nämlich auch eine bestimmte Farbe zuordnen. Dies funktioniert genauso, als wollten Sie die Bildschirmfarbe ändern, nur müssen wir diesmal die Farbe nicht ins Hintergrundregister schreiben, sondern in das dem Sprite zugehörige Farbregister. Diese sind Ihnen bestimmt schon in der Register- Tabelle aus dem letzten Kursteil aufgefallen. Es sind die Register 39 bis 46 . Für jedes der 8 Sprites ein Register. Möchten wir also Sprite 0 nicht in Weiß, sondern beispielsweise in Schwarz auf dem Bildschirm sehen, so müssen wir schlichtweg eine 0 in Register 39 schreiben. Die Farbwerte sind dieselben wie bei der Hintergrundfarbgebung. Hier jedoch trotzdem nocheinmal eine Tabelle:

Wert Farbe         Wert Farbe           
  0  Schwarz         8  Orange          
  1  Weiß            9  Braun           
  2  Rot            10  Hellrot         
  3  Türkis         11  Dunkelgrau      
  4  Violett        12  Mittelgrau      
  5  Grün           13  Hellgrün        
  6  Blau           14  Hellblau        
  7  Gelb           15  Hellgrau        

Schreiben Sie nun einen dieser Werte in das Farbregister eines Sprites, so erscheint dieses dann in der angegebenen Farbe ( unter der Vorraussetzung, daß es natürlich auf dem Bildschirm sichtbar ist) .

3.) Multicolorsprites:                  

Nun können wir also auch einem Sprite eine Farbe zuweisen. Doch müssen Sie zugeben, daß dies auf die Dauer auch nicht die optimale Sache ist. Ein kleines Männchen, was da auf dem Bildschirm steht, würde sich doch viel besser machen, wenn es nicht nur uni-Weiß wäre, sondern wenn es ein gesundes rosa Gesicht, einen gelben Pulli, und eine blaue Hose hätte. Sowas spricht doch bestimmt mehr an, als ein einfarbiger Klotz, bei dem man nicht Körper von Kopf unterscheiden kann. Nun, wie die Öberschrift dieses Kapitels zeigt, gibt es auch die Möglichkeit, einem Sprite MEH-RERE Farben zuzuordnen ( multi= viel; color= Farbe; multicolor= vielfarbig) . Um das " viel" gleich schon etwas genauer zu spezifizieren, kann ich Ihnen gleich verraten, daß ein Sprite maximal 4 von den 16 oben aufgelisteten Farben annhemen kann.
Die Sache mit der Vielfarbigkeit von Sprites hat aber wiederum einen kleinen Haken. Wir müssen nämlich, wie bei der Spriteexpansion auch, einen kleinen Auflösungsverlust hinnehmen. Diesmal wird sie halbiert, jedoch nur in X-Richtung. Das heißt, daß wir mit einem Multicolorsprite nur noch 12 x21 Punkte darstellen können.
Achtung, jetzt wirds kompliziert: Trotzdem wir zwar nur noch 12 Punkte in X-Richtung darstellen können, ist das Sprite jedoch immer noch 24 Punkte breit! Deshalb schauen Sie sich am besten erst einmal die folgende Grafik an, bevor ich mich in umständlichen Erklärungen verliere, die eh keiner versteht. . .

Valid HTML 4.0 Transitional Valid CSS!