Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 30.03.2007, 21:48 Titel: |
|
|
Ok, weil ich gerade so gute Laune habe, versuch' ich's nochmal.
Code: |
5 CLS
10 SCREEN 9
20 CLS
|
CLS (=clear screen) löscht den Bildschirm, ist in Zeile 5 und 20 doppelt gemoppelt, eins davon ist überflüssig. SCREEN 9 schaltet in den Bildschirmmodus 9, der hat eine Auflösung von 640 Pixeln in der Breite (von rechts nach links von 0-639 laufend) und 350 in der Höhe (von oben nach unten von 0-349 laufend).
Code: |
30 FOR fuellstand = 0 TO 1 STEP .01
40 LINE (100, 100)-(200, 300), 15, B
50 LINE (101, 100)-(199, 299 - fuellstand! * 180), 0, BF
60 LINE (101, 299 - fuellstand! * 180)-(199, 299), 14, BF
70 zeit = TIMER: DO: LOOP WHILE TIMER < zeit + .1
80 NEXT
90 SLEEP
|
In der FOR...NEXT-Schleife in Zeile 30/80 wird die Variable "fuellstand" von Null bis Eins hochgezählt, in Schritten von 0.01 (STEP .01), die Null vor dem Komma braucht man nicht zu schreiben. Im ersten Durchgang ist fuellstand also 0, dann 0,01, dann 0,02 usw.
Zeile 40 Zeichnet ein leeres, weisses Rechteck, 15 ist die Farbe Weiss, das B am Ende steht für Rechteck, sonst würde nur eine Linie zwischen den angegebenen Koordinaten gezogen.
In Zeile 50 wird ein schwarzes, ausgefülltes Rechteck in das weisse hineingezeichnet. BF steht für ein gefülltes Rechteck, 0 ist die Farbe Schwarz. Damit wird die obere Linie des weissen Rechtecks übermalt, damit es so aussieht als wäre es oben offen. Die Ränder links und rechts (101 und 199) sind dabei um eins nach innen versetzt, damit die nicht auch schwarz übermalt werden. Der obere Rand ist fest bei 100, das weisse Rechteck bewegt sich ja nicht. Der untere Rand wird aus der Variablen fuellstand errechnet. Bräuchte man zwar nicht so zu machen, aber egal. also der "Boden" des Gefässes ist auf 300, damit der nicht übermalt wird fängt das schwarze bei 299 an. Im ersten Schleifendurchgang ist ja fuellstand noch = 0. Von 299 wird also nichts abgezogen. Das schwarze Rechteck wird von ganz unten bis ganz oben gezeichnet. Dann wird fuellstand nach und nach grösser und damit wird auch mehr von 299 abgezogen und der untere Rand des schwarzen Rechtecks wandert jedesmal ein Stück nach oben. Die gesamthöhe ist 180. Am Ende der Schleife ist füllstand = 1, damit wird die gesamte, maximale Füllhöhe abgezogen.
In Zeile 60 das gleiche. Hier wird ein gelbes (14) Rechteck gezeichnet, nur wird hier der obere Rand berechnet, der untere ist fest. Wie in Zeile 50 wandert dieser Rand mit wachsendem Wert für fuellstand nach oben.
In Zeile 70 wird dann eine Zehntelsekund (nicht eine Sekunde wie ich zuerst geschrieben hatte, da hab ich mich verkuckt) gewartet, das mit dem TIMER hatte ich ja schon beschrieben.
So, wenn du's jetzt immer noch nicht verstehst, dann kann ich dir auch nicht mehr helfen. Nur noch ein Tip. Wenn du sowas nicht verstehst, dann Spiele einfach mal damit rum, indem du ein paar Zahlen änderst und einfach mal schaust, was dann passiert. Wenn du schwarze Rechteck z.B. in einer anderen Farbe zeichnen lässt, kannst du schon besser sehen was passiert. Oder setze mal das Tempo runter, indem du z.B. eine Sekunde wartest jedesmal. Dann kannst du den Ablauf besser verfolgen.
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|