SDLBasic-Anfänger Tutorial by Nils Tonagel 1# Dev-Kit herunterladen und installieren: Als erstes müsst ihr euch das SDLBasic devkit herunterladen. Dies macht ihr am besten unter: " http://www.sdlbasic.altervista.org/main/index.php?mod=04_x_Download ". Startet das Setup ( Windows ) und wählt die benötigten Files aus. Natürlich funktioniert SDLBasic auch unter Linux und MacOS. Als nächstes startet ihr die SDLBasic Anwendung aus dem Startmenü. 2# Ein kleines Beispiel: Habt ihr dieses getan, startet ihr ein neues Dokument und schon geht es los: setdisplay(320,240,32,1) Diese Zeile ermöglicht es euch ein Fenster zu erzeugen, indem das weitere Programm abläuft. Die erste Zahl gibt die Weite des Fensters an (x) und der zweite Wert (y) gibt die Höhe des Fensters an. Beide Werte sind Pixelangaben. Position drei belegt die Farbtiefe und die vierte gibt an, ob es sich um ein festes oder größen verstellbares Fenster handelt. autoback(-15) Autoback bedeutet die automatische Wiederholrate der gezeihneten Screens. Der Wert in der Klammer bedeutet wie oft der Bildschirm neugezeichnet werden soll. Ein negativer Wert erzeugt eine Verlangsamung. loadmusic("lizard.mod") Diese Funktion lädt eine Musik-Datei. Dank der smpeg.dll können auch MP3-Dateien geladen werden. Man sollte immer ein relativen Pfad benutzen ;) da man dann keine Pfadprobleme auf anderen System befürchten muss. playmusic(-1) Playmusic spielt den zuvor geladenen Track ab. Das "-1" in der Klammer sorgt dafür, dass die Musik in einer Endlosschleife abgespielt wird. ink(rgb(200,200,56)) Ohhh eine Doppelfunktion. Die Ink-Funktion gibt eine Farbe im Uint32-Format an. Kombiniert man diese Funktion mit der RGB-Funktion, so können RBG Farbinformationen benutzt werden. Diese aufgeführte Funktion würde ein Total hässliches Gelb hervorbringen ;) textrender("GP2X-Demo",32,1) Diese nette kleine Funktion rendert ein Text-String. Die Reihenfolge in der Klammer ist folgende: ("TextString",Größe,ID) Die ID wird benötigt um den gerenderten Text direkt anzusprechen. Mit textrender erstellte Strings werden als Bild angesehn und auch so benutzt. hotspot(1,1,1) Hotspot ist der passende Formatierungsbefehl. Die Werte in der Klammer sind: die ID,x-Koordinate,y-Koordinate. Die Muster x=1 und y=1 bedeuten eine Zentrierung des Bildes mit der angebenen ID. for move=0 to 250 step 1 Der Anfang einer For-Schleife. Sie wird wie folgt benutzt: For variable=Anfangswert to Endwert step Schrittanzahl. Eine For-Schleife erhöht den wert der Variable solange, bis der Wert der Variable gleich des Endwertes ist. sprite (1,move-90,120,1) Wie der Name schon sagt, platziert diese Funktion ein Bild an eine vorgegebene Stelle. die Werte sind wie folgt zu verwenden: ID des Bildes, X-Position, Y-Position, Bewegendes Bild. In diesem Beispiel wird unser Text mit der ID 1 von der Position -90 bis zur Position 160 bewegt. Die Höhe beträgt konstant 120. Das bewegende Bild ist wieder die ID 1. screenswap Diese Funktion tauscht den alten Bildschirm mit dem neu gezeichneten Bildschirm aus. Dadurch wird eine Bewegung angezeigt. Ohne screenswap würde der Text sofort aufblenden und sich nicht bewegen. next Next beendet den Bereich der For-Schleife und lässt Sie von neuem beginnen. while 0=0 Die While-Schleife wird solang durchgeführt, bis die Bedingung ( im Beispiel 0=0 ) unwahr wird oder die Schleife vorzeitig beendet wird. screenswap Wieder ein Screenswap, um die Dynamic am Leben zu erhalten. :) a = inkey Die Variable a wird mit dem Wert, den inkey zur Verfügung gestellt wird gefüllt. Inkey enthält den Wert, der von der Tastatur kommt. if a=27 then Eine Bedingung wird abgefragt. Dies geschieht in unserem Beispiel durch eine if Bedingung. Sie besagt: Wenn a den Wert 27 ( esc-Taste ) hat dann... exit while ... soll die While-Schleife sofort beendet werden. end if Diese Funktion beendet den Bereich der If Bedingung. end while End While beendet den Bereich der While-Schleife. Hier der komplette Code: setdisplay(320,240,32,1) autoback(-15) loadmusic("lizard.mod") playmusic(-1) ink(rgb(200,200,56)) textrender("GP2X-Demo",32,1) hotspot(1,1,1) for move=0 to 250 step 1 sprite (1,move-90,120,1) screenswap next while 0=0 screenswap a = inkey if a=27 then exit while end if end while Dies ist das erste SDLBasic Tutorial von mir. Es folgen aber bald weitere. Ich wünsche euch Viel Spaß und gutes gelingen mit SDLBasic ;) MFG Nils Tonagel