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...