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