"Picasso und all die andern..." Teil 2 ----------------------------------------
Ring frei zur zweiten Runde in Sachen Grafik. Diesmal wollen wir die Sprites zu Ende abhandeln. Sie hatten letzten Monat ja schon ge- lernt, was man alles machen muß, um ein Sprite auf den Bildschirm zu bringen und wie man es über den Bildschirm bewegt. Heute wollen wir nun noch ein paar Ein- zelheiten klären, mit denen man gezielt Sprites manipulieren kann. Und die sind sehr zahlreich, aber aufgrund der Infor- mationen des letzten Kurteils auch sehr einfach zu verstehen. Also los gehts...
a) Spriteexpansion: ---------------------
Wie Sie sicherlich noch wissen, war ein Sprite genau 24x21 Punkte groß. Wenn Sie sich dies einmal auf dem Bildschirm an- gesehen haben, so war zu erkennen, daß dies eigentlich ein relativ kleiner Be- reich ist. Was aber wenn wir jetzt ein Spiel schreiben wollten, in dem ein be- sonders großes Raumschiff in einer klei- nen Animation über den Bildschirm glei- tet? Da gibt es grundsätzlich 2 Möglich- keiten. Zum einen die, daß man einfach mehrere Sprites zusammenfaßt und diese dann nebeneinander darstellt. Das hat aber auch den Nachteil, daß nicht mehr viele weitere Sprites übrigbleiben wür- den, mit denen wir noch andere Dinge über den Bildschirm huschen lassen könn- ten, denn wir haben ja nur 8 von diesen kleinen und schnuckeligen Grafikobjek- ten. Deshalb können wir auch auf eine andere Methode zurückgreifen: die Spri- teexpansion. Was ist das, Expansion? Nun Expansion heißt nichts anderes als "Erweiterung" oder besser "Dehnung". Durch die Spri- teexpansion können wir also Sprites deh- nen. Hierbei wird der Bereich eines Sprites einfach um das doppelte erwei- tert. Im Klartext heißt das, daß wir auf diese Art und Weise die Größe von 24x21 auf 48x42 Punkte erhöhen. Das ist eine flächenmäßige Vergrößerung um den Faktor 4. Das Sprite ist jetzt also viermal größer als wenn es nicht-expandiert wäre! Die ganze Sache hat aber auch einen Nachteil. VIC benutzt zur Expansion näm- lich immer noch die alten 63 Bytes, wie Sie zur Darstellung von einem "normalen" Sprite nötig sind und nicht etwa das vierfache davon (=252 Bytes). Wir hatten ja gesagt, daß das Sprite "gedehnt" wird, und das ist auch genauso wörtlich aufzunehmen. VIC tut nichts anderes, als jeden Bildpunkt eines Sprites zu dehnen. Das heißt daß er da, wo vorher nur ein Punkt war zwei Punkte in X-Richtung und zwei Punkte in Y-Richtung darstellt. Hierbei hat die Grafikauflösung kräftig zu leiden, denn so haben wir nicht mehr einzelne feine Punkte, sondern dicke Klötze auf dem Bildschirm. Am besten ich zeige Ihnen einmal den Unterschied in Form einer Grafik: