The Wiki server will get updated probably on Sunday 23rd. - Der Wiki-Server bekommt vermutlich am Sonntag dem 23. ein Update.

CHAR

Aus C64-Wiki

Wechseln zu: Navigation, Suche
CHAR
Format: 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
Shortcut: keiner (cH unter TSB)
Verwandte Befehle
TEXT


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)).

PLOT setzt hier mithilfe von CHAR Buchstaben auf eine Kugel
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.)

Persönliche Werkzeuge