vom 18.11.2000
Thema: Mein erstes Programm
mit DirectQB
Nachdem du DirectQB gestartet hast (auf start.bat drücken), befindest du dich nun in QBasic. Wie du weißt gibt man in seinem ersten Programm meistens die Worte "Hello World" aus, das machen wir heute genauso.
Jetzt kommt erst mal der Quellcode:
'$INCLUDE:'DIRECTQB.BI' IF DQBinit(0, 0, 0)
THEN DQBclose: PRINT DQBerror$: END DQBinitVGA DQBprint VIDEO, "Hello
World", 96, 40, 4 WHILE INKEY$ = "":
WEND DQBclose
Und nun folgt die Erklärung der einzelnen Befehle!
'$INCLUDE:'DIRECTQB.BI'
Dieser Befehl muß in jedem DirectQBprogramm am Anfang stehen, damit die die Library erst einmal geladen wird. Wenn dieser Befehl fehlt, erkennt QBasic die DirectQBbefehle nicht an.
IF DQBinit(0, 0, 0) THEN DQBclose: PRINT DQBerror$: END
Diese Befehlszeile muß auch am Anfang jeden DirectQBprogramms stehen . Hier werden die Layer, Sounds und der EMS-speicher initialisiert. Der DQBinit-befehl enthält in diesem Bsp. 3 Nullen. Diese Nullen bedeuten folgendes. 1. Null=Anzahl der Layer, 2. Null=Anzahl der Sounds, 3. Null=kBytes an EMS-speicher. Das klingt noch ein bisschen kompliziert, darauf gehe ich aber später noch genauer ein.
DQBinitVGA
Dieser Befehl initialisiert den VGA-modus, d.h. es gibt jetzt 256 Farben und die Bildfläche beträgt 320 mal 200 Pixel.
DQBprint VIDEO, "Hello World", 96, 40
Mit diesem Befehl wird der Text "Hello World" an der Position X=96 und Y=40 mit der Farbe rot auf dem Bildschirm ausgegeben. Das Wort VIDEO bedeutet, das der Text "Hello World" auf dem Bildschirm ausgeben wird und nicht erst in einem Layer gespeichert wird.
Unterteilung des Bildschirms:
X-Position = von links nach rechts (0 - 320)
Y-Position = von oben nach unten (0 - 200)
WHILE INKEY$ = "": WEND
Dieser Befehl wartet solange, bis man eine Taste drückt, erst dann fährt er mit dem Programmablauf fort.
DQBclose
Diese Befehl beendet alles das, was DQBinit geladen hat.
Herzlichen Glückwunsch zu deinem ersten DirectQBprogramm. Du brauchst keine Angst haben, es wird schon noch komplizierter.
Bis zum nächsten Mal.