CHAR

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Begriffsklärung Der Titel dieses Artikels ist mehrdeutig. Weitere Bedeutungen finden sich unter CHAR (Begriffsklärung).
CHAR
Syntax: CHAR <x>,<y>,<bc>,<f>,<zm>
Parameter
x: X-Koordinate des Startpunktes (0..319 / 0..159)
y: Y-Koordinate des Startpunktes (0..199)
bc: Bildschirmcode des Zeichens (0..255)
f: Farbquelle (0..2 / 0..4)
zm: Zoomfaktor (1..255)
Einordnung
Typ: Anweisung
Kontext: Grafik
Aufgabe: Schreiben einzelner Zeichen im Grafikmodus
Abkürzung: keiner (cH unter TSB)
Token: $64 $0b (100 11)
Verwandte Befehle
TEXT


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort CHAR.

Typ: Anweisung 
Syntax: CHAR <x>,<y>,<bc>,<f>,<zm> TSB-Syntax: CHAR <x>,<y>,<bc>, [[<f>,[<zm>]]

CHAR schreibt ein einzelnes Zeichen im Bildschirm-Code (<bc>) in der Farbe der angegebenen Farbquelle <f> (s. dazu HIRES) in den Grafikbildschirm. Zulässige Werte für <x> sind 0..319 (im Hires-Modus) bzw. 0..159 (im Multicolor-Modus). Für <y> sind in beiden Fällen Werte von 0 bis 199 erlaubt. Der Punkt 0,0 ist in der linken oberen Ecke. Kleinbuchstaben erhält man, indem man zum Bildschirm-Code des Zeichens den Wert 256 hinzuaddiert.

Leider wirkt sich der Zoom (<zm>) nur auf die Höhe der Zeichen aus, nicht jedoch auf deren Breite. Zooms größer als 5 wirken daher bereits unansehnlich (vgl. dazu DUP (TSB)).

PLOT setzt hier mithilfe von CHAR Buchstaben auf eine Kugel

Mithilfe eines einfachen POKEs kann man bei CHAR auch eigene Zeichensätze einbinden. Siehe dazu beim Stichwort TEXT.

Wird kein Parameter eingegeben, so erscheint die Fehlermeldung ?SYNTAX ERROR, bei einem falschen Wert erscheint ?BAD MODE ERROR. In TSB kann man die letzten beiden Parameter (<f> und <zm>) von rechts her auch weglassen. Sie werden beide mit dem Standardwert 1 initialisiert.

Beispiel[Bearbeiten | Quelltext bearbeiten]

100 HIRES 8,11: bb=-1: vv=.6
105 CIRCLE 160,100,100,100,1: PAINT 160,100,1            Anfangskreis malen und füllen

110 BLOCK 0,0,8,8,0
120 a=a+1: IF a>26 THEN a=1                              Buchstaben schreiben
130 CHAR 0,0,a,1,1

140 bb=bb+.008/COS(bb): ll=ll+.2/COS(bb)
150 IF bb>1.45 THEN 240
160 FOR i=0 TO 8 STEP .5: FOR j=0 TO 8 STEP .5
170 IF TEST(i,8-j)=0 THEN 230
180 b=bb+.02*j: l=ll+.02/COS(bb)*i
190 x=SIN(l)*COS(b): y=COS(l)*COS(b): z=SIN(b)           Buchstaben auf die Kugel übertragen
200 u=y*COS(vv)+z*SIN(vv): v=-y*SIN(vv)+z*COS(vv)
210 IF u<0 THEN i=8: j=8: GOTO 230
220 PLOT 160+100*x,100-100*v,0
230 NEXT: NEXT: GOTO 110

240 CIRCLE 160,100,100,100,1
250 BLOCK 0,0,8,8,0                                      Schlusskreis malen
260 WAIT 198,255
 

Das Programm erzeugt die abgebildete Grafik; vv steuert die Neigung der Kugel - (-π..+π), mit u wird festgestellt, ob ein Punkt sichtbar ist.

Beispiel übernommen und angepasst aus dem Buch Spiele mit Computergrafik.
Die Abarbeitungszeit auf einem Original-C64 ist sehr lang.