von Carsten Strotmann Teil II Der Zeichensatz --------------- Die frühen Computerspiele Anfang der achtziger Jahre sahen meist so aus: Zwei (Tennis-)schläger, dargestellt durch den Buchstaben 'I', und ein 'O', welches in die Rolle des Balles schlüpfte. Fertig war das Spiel (Pong). Damals reichte das dem Computerspieler völlig aus, heute jedoch kann ein sol- ches Spiel nur noch zu Lachkrämpfen reizen. Die Computergrafik der Spiele wurde weiterentwickelt und immer mehr der Realität angepasst. Daher sollte man bemüht sein die Grafikfähigkeiten seines Computers so weit wie möglich zu nutzen. Spiele mit hochauflösender, bewegter Grafik lassen sich in reinem Basic nicht realisieren. Die Menge der zu verarbeitenden Daten wäre zu hoch, so daß Basic dazu nicht schnell genug wär- e. Um nun doch farbige Grafiken erhal- ten zu können, muß man mit selbstdefi- nierten Zeichensätzen arbeiten. Der ATARI-Computer hat die Möglichkeit, einfarbige sowie vierfarbige Zeichen- sätze darzustellen. Für Spiele bieten sich natürlich die vierfarbigen Zeichensätze an. Technischer Hintergrund: Was ist ein Zeichensatz intern ? Der Zeichensatz ist ein 1 KB (1024 Bytes) grosser Speicherbereich im RAM des Com- puters. Von dort holt sich der Grafik- chip des Computers bei Darstellung ei- nes Textbildschrims (Graphics 0,1,2,12, 13) die Daten für die Darstellung der einzelnen Zeichen. Die Daten für die eingebauten Zeichensätze liegen im ROM des Computers und im Normalfall holt sich der Grafikchip von dort die Zei- chendaten. Man kann jedoch auch selbst bestimmen, aus welchem Speicherbereich der Grafikchip (ANTIC) seine Zeichen- satzdaten holen soll. Um nun einen an- deren, eigenen Zeichensatz darstellen zu können, müssen neue Zeichensatzdaten in einen RAM-Bereich des Computers ge- laden werden und der Grafikchip ange- wiesen werden, seine Zeichendaten nun aus diesem Bereich zu holen. Dieses ge- schieht mit Hilfe der Speicherstelle 756 (Hex: $02F4 / CHBAS). Der Wert in dieser Speicherstelle multipliziert mit 256 (HEX: $100) zeigt auf den Speicher- bereich, in dem Zeichensatz liegt. Allerdings muß dieser 8-Bit Wert durch 4 teilbar sein, da ansonsten die Daten nicht korrekt gelesen werden. Als Beispiel für dies könnt ihr euch Listing 1, FONT1.TUR anschauen. Hier wird ein einfarbiger Zeichensatz einge- laden und in Graphics 0 dargestellt. Dieses Beispiel benutzt die Routine FONT_LOAD zum Laden der Daten. Da diese Routine bei vielen Spieleprogrammen ge- braucht wird, ist sie als ASCII File auf der Diskette vorhanden. Ihr könnt diese Routine nun für eigene Programm benutzen. Die Frage ist, wie man nun zu den Zeichensatzdaten kommt. Um einen Zeichensatz selbst editieren zu können, muß man unbedingt einen Zeichensatz- editor verwenden. Zeichensatzeditoren gibt es wie Sand am Meer, so daß jeder einen besitzen sollte.( Wer jedoch kei- nen hat, kann das PD-Programm auf die- ser Disk verwenden.) Für farbige Zeichensätze gilt das glei- che wie für einfarbige. Nur das jeweils zwei nebeneinanderliegende Punkte des einfarbigen Zeichensatzes die Farbe des Punktes im vierfarbigen Zeichensatz be- stimmen. Daher hat man pro Zeichen nur noch vier Punkte nebeneinander, also eine Auflösung von 4x8 Pixel pro Zei- chen. Da man in dieser Auflösung pro Zeichen nicht viel Sinnvolles in ein Zeichen packen kann, sollte man mehrere Zeichen zu einem Objekt zusammenfassen. Im Spiel Boulder Dash wurden 4 Zeichen zu einem Objekt (Stein, Rasen, Falter usw.) zusammengefasst. Vierfarbige Zeichensätze lassen sich nur in den Graphik Modi 12/13 darstel- len. In diesen Modi kann man allerdings Zeichen nur über den Kanal Nummer 6 ausgeben. Da dies mit unter umständlich sein kann, gibt es einen Weg einen nor- malen Graphics 0 Editorbildschirm so umzuwandlen, das er farbige Zeichen darstellt. Dies zeigt das Programm FONT2.TUR. Wichtig ist die Prozedur NEWGR12, die die Umwandlung vornimmt. In dem Programm wird ein Demobildschirm aus einem alten Spiel von mir eingela- den und dann mit einem vierfarbigen Zeichensatz dargestellt. Die Zeichen können auch über PRINT Befehle auf den Bildschirm gebracht werden, doch in späteren Folgen dieses Kurses werde ich zeigen, daß das Abspeichern von Bild- schirmen auf Disk Vorteile hat. Zeichensatzgrafik eignet sich im Beson- deren für die Hintergrundgrafiken und nur bedingt für Spielfiguren, da diese nur zeichenweise bewegt werden könnten. Diese Art von Bewegung ist aber zu ruk- kelig für Spiele. Es kann allerdings der Hintergrund bei einer Zeichensatz- grafik bewegt werden. Diese Bewegungen spielen sich in den einzelnen Zeichen ab und werden durch zwei oder mehr Zei- chensätze erreicht, die hin- und her- geschaltet werden. Der entstehende Effekt ist der eines Daumenkinos. Zei- chen in den Zeichensätzen unterscheiden sich um kleine Details. Beim Umschalten entsteht Bewegung. Dieses System wird in dem Programm FONT3.TUR demonstriert. Es wird das gleiche Bild wie in Bei- spiel 2 gezeigt, allerdings bewegen sich nun die Lianen. Soweit dieser Kurs zum Zeichensatz. Ihr könnt wie immer die auf dieser Diskette befindlichen Beispielprogramme oder Prozeduren in eigene Programme einbauen und mit den Programmen ein wenig expe- rimentieren. Im nächsten Teil dieses Kurses wird es um die fließende Bewe- gung der Spielfiguren mit Hilfe der Player-Missile-Grafik gehen. Bis dahin wünsche ich Euch viel Spaß beim Experimentieren mit den Zeichen- sätzen.