BLOCK

Aus C64-Wiki
Zur Navigation springenZur Suche springen
BLOCK
Syntax: BLOCK <x1>,<y1>,<x2>,<y2>,<f>
Parameter
x1: X-Koordinate linke obere Ecke (0..319 / 0..159)
y1: Y-Koordinate linke obere Ecke (0..199)
x2: X-Koordinate rechte untere Ecke (0..319 / 0..159)
y2: Y-Koordinate rechte untere Ecke (0..199)
f: Farbquelle (0..2 / 0..4)
Einordnung
Typ: Anweisung
Kontext: Grafik
Aufgabe: Zeichnen eines ausgefüllten Rechtecks
Abkürzung: keine (TSB: bL)
Token: $64 $04 (100 4)
Verwandte Befehle
PLOT - REC - LINE - CIRCLE - ARC - ANGL - PAINT


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

Typ: Anweisung 
Syntax: BLOCK <x1>,<y1>,<x2>,<y2>,<f>

BLOCK zeichnet ein ausgefülltes Rechteck. Der Ort der linken oberen Ecke wird durch die beiden ersten Parameter <x1> und <y1> bestimmt, die rechte untere Ecke des Rechtecks legen Parameter <x2> und <y2> fest. Zulässige Werte sind 0..319 für <x1> und <x2> (im Hires-Modus) bzw. 0..159 (im Multicolor-Modus). Für <y1> bzw. <y2> sind in beiden Fällen Werte von 0 bis 199 erlaubt. Die Farbe des Rechtecks wird durch den letzten Parameter (<f>) bestimmt. Auch die Farbe hängt vom Grafikmodus ab und bezieht sich auf die Farbangaben hinter HIRES einerseits bzw. MULTI andererseits. Der Punkt 0,0 ist in der linken oberen Ecke.
Leider stimmen die Parametertypen von REC und BLOCK nicht überein, was das Programmieren ein wenig umständlicher macht (siehe Beispiel Flugblätter).

Unterschreitet <x2> den Wert von <x1> oder <y2> den Wert von <y1> reduziert sich die Breite bzw. Höhe auf 1 Pixel. Es wird also zumindest eine horizontale, eine vertikale Linie oder ein Punkt gezeichnet.

Stimmt die Parameteranzahl nicht mit 5 überein, erscheint die Fehlermeldung ?SYNTAX ERROR. Wenn die linke obere Ecke außerhalb des Bildschirmbereichs liegt, erscheint ?BAD MODE ERROR. Befinden sich Parameter für die X-Richtung außerhalb des Bereichs von 0 bis 65535 und für die Y-Richtung und Farbquelle außerhalb von 0 bis 255 erfolgt ein Abbruch mit ?ILLEGAL QUANTITY ERROR.

Beachten: Die Einstellungen von LOW COL haben keine Auswirkung, BLOCK schreibt nur in den globalen Farben.

Beispiel[Bearbeiten | Quelltext bearbeiten]

Das folgende Programm erzeugt die abgebildete Animation.
Beispiel übernommen und angepasst aus dem Buch Spiele mit Computergrafik.

100 HIRES 0,1
105 REPEAT: GET x$
110 x=290*RND(1): y=180*RND(1)
120 BLOCK x,y,x+29,y+19,0
130 REC x,y,29,19,1
140 UNTIL x$>"": PAINT 0,0,1
150 WAIT 198,255


Die Blätter werden mittels BLOCK zuerst gelöscht