Hallo Welt
Nun beginnen wir mit unserem Programm. Dabei soll der Text "Hello world" auf dem PSP Bildschirm dargestellt werden. Das Programm ist auch bekannt als "Hello World"-Programm und ist so ziemlich immer der erste Schritt in einer Programmiersprache. Der Befehl zum Ausgeben von Text auf dem Bildschirm lautet
screen:print(x,y, "dein Text hier", farbe)
Zum Einstieg nun einmal der komplette Code des "Hello world"-Programms:
farbe = Color.new(255,255,255) screen:print(1,1,"Hallo welt", farbe) screen.flip() screen.waitVblankStart(300)
Tippe den Code vollst�ndig ab und speichere ihn als script.lua im LuaPlayer-Ordner ab. Starte dann den LUAPlayer und bewundere das Ergebnis: ein wei�es "Hallo welt" auf schwarzem Hintergrund...Jetzt zur Erkl�rung: screen:print gibt an, welcher Text mit welcher Farbe wo dargestellt werden soll. "1,1" steht dabei f�r die x und y-Koordinaten auf dem PSP-Bildschirm. Danach folgt der auszugebende Text, hier ist es "Hallo welt". Zu guter letzt m�ssen wir dem LUAPlayer noch mitteilen, welche Farbe die Schrift haben soll. Ohne Farbe geht es gar nicht. Darum muss man vor dem screen:print noch eine Farbe definieren, mit dem Befehl Color.new(rot,gr�n,blau). Rot, Gr�n und Blau m�ssen selbstverst�ndlich als Zahlenwerte angegeben werden. Rot, Gr�n und Blau bilden zusammen eine Farbe. 255,255,255 ist dann zum Beispiel Wei�. Du kannst die Werte beliebig �ndern.Nach dem screen:print folgt dann der Befehl screen.flip(). Was hat es damit auf sich? Nun, screen:print sagt nur aus, wo und wie der Text dargestellt werden SOLL. screen.flip() klatscht es dann auf den Bildschirm. Ohne screen.flip() l�uft in LUA nichts. Diesen Befehl braucht man immer. Am Ende ist dann noch ein screen.waitVblankStart(300). Das gibt an, wie lange alles auf dem Bildschirm angezeigt werden soll, bevor das Script endet. 300 sind 5 Sekunden. 60 Einheiten in LUA entspricht einer Sekunde. Sollte der Text nur 2 Sekunden angezeigt werden, m�sste 120 in der Klammer stehen. Jetzt wirst du dich wahrscheinlich fragen, wie man es macht, dass der Text f�r immer angezeigt wird. Dazu gibt es einen Codeblock mit einer while-schleife. Ich m�chte dazu aber nicht mehr erkl�ren oder sagen, da ich dich nicht verwirren m�chte. Wie genau das funktioniert wird sp�ter erl�utert. Das "Hello world"-Programm sieht dann so aus:
farbe = Color.new(255,255,255) screen:print(1,1,"Hallo welt", farbe) while true do screen.flip() screen.waitVblankStart() end
Wir haben die beiden Befehle screen.flip() und screen.waitVblankStart() in eine while-schleife gepackt. Das ganze funktioniert denkbar einfach: Die while-Schleife wird durchgehend wiederholt, daher werden die Befehle extrem schnell aufeinanderfolgend ausgef�hrt. Wenn es nach dem screen.waitVblankStart() ginge, w�rde der Text " Hallo welt" nicht einmal eine Sekunde angezeigt werden. Da es aber in der while-Schleife steht, die in einem wahnsinnigen Tempo durchgehend wiederholt wird,wird "Hallo Welt" in einer Sekunde so oft angezeigt, dass es f�r unser Auge so aussieht, als ob das Bild durchgehend "stehen"w�rde. In Wirklichkeit wird der Text ganz schnell hintereinander ausgegeben, bei jedem neuen Durchlauf der Schleife...