CHAR
Aus C64-Wiki
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort CHAR.
Typ: Anweisung
Syntax: CHAR <x>,<y>,<bc>,<f>,<zm>
CHAR schreibt ein einzelnes Zeichen 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.
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)).
Wird kein Parameter eingegeben, so erscheint die Fehlermeldung ?SYNTAX ERROR, bei einem falschen Wert erscheint ?BAD MODE ERROR.
Beispiel: 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=b+.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 (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.)
