Hallo Welt


PGELua erwartet von seinem "Meister" immer, dass er selbst eine Schriftart lädt und festlegt, die er danach für die Schriftausgabe verwenden kann. Zudem will PGELua auch vor der Text/Bild/GFX-Ausgabe immer wissen, was für ein "Modus" gerade läuft, nämlich ob er sich im Zeichenmodus befindet, oder nicht. Was vielleicht ein wenig umständlich erscheinen mag, ist ein wahres Goldstück für die Performance des Programmes. Auf gut deutsch: Es ist gut gemeint und ist auch gut so :D Genug um den heissen Brei gerdet, ich serviere euch jetzt einfach mal den kompletten Code.

	font = pge.font.load("verdana.ttf", 12, PGE_RAM) 
	--es können auch mehrere versch. "Fonts" geladen werden!
	
	white = pge.gfx.createcolor(255, 255, 255)
	black = pge.gfx.createcolor(0, 0, 0)
	
	while pge.running() do
		pge.controls.update()
		
		pge.gfx.startdrawing()
		pge.gfx.clearscreen(black)
		
		font:activate()
		font:print(10, 10, white, "Hallo Welt")
		
		pge.gfx.enddrawing()
		pge.gfx.swapbuffers()
	end
	

Vielleicht sieht das auf den ersten Blick recht seltsam aus, aber das Prinzip bzw. die Funktionsweise sind doch ganz einfach. Zuerst laden wir eine Schriftart mit der Größe 12 in den Arbeitsspeicher der PSP. Alternativ zu PGE_RAM könnte man auch PGE_VRAM schreiben. VRAM ist der Grafikspeicher vom Grafikchip der PSP und generell etwas schneller als der Arbeitsspeicher, dafür aber auch kleiner. Die Variable, die die Schriftart beinhaltet heisst hier font. Wir könnten sie aber auch Wurstbrot nennen. Nur müssten wir dann später anstatt

	font:activate()
	font:print(10, 10, white, "Hallo Welt")
	

folgendes schreiben:

	Wurstbrot:activate()
	Wurstbrot:print(10, 10, white, "Hallo Welt")
	

Die Definition der Farben bedarf, denke ich, keiner weiteren Erklärung. Der Mainloop lautet hier

	while pge.running() do
	

anstatt

	while true do
	

, wobei letzteres ebenso funktionieren würde. Ein Nachteil, oder auch Vorteil, jenachdem wie man es betrachtet, ist die Sache mit den Tasten. Man kann die Tasten nicht überwachen und diesen Status in einer Variablen abspeichern, man bindet lediglich einmal

	pge.controls.update()
ein, was die Tasten überprüft. Dementsprechend würde dann auch ein "Buttoncheck" anders aussehen:
	if pge.controls.pressed(PGE_CTRL_CROSS) then 
		... 
	end
Das tolle daran ist aber auf jeden Fall, dass der Hickhack mit oldpad und pad wegfällt. Das erledigt PGE automatisch. Bevor man nun Text etc ausgeben kann, muss zuvor der Zeichenmodus initialisiert werden:
	pge.gfx.startdrawing()
Danach kann gezeichnet werden. Wenn man fertig ist mit Zeichnen sollte man den Modus wieder schliessen:
	pge.gfx.enddrawing()
Danach könnte man dann PSP Systemdialoge anzeigen, was hier jetzt aber nicht mit veranschaulicht wird. Darüber geben die Codebeispiele von PGELua mehr Aufschluss. Und zuguterletzt hätten wir da noch
	pge.gfx.swapbuffers()
, was grob gesagt das screen.flip() und screen.waitVblankStart() ersetzt. Und natürlich darf man nicht vergessen, die while-Schleife mit einem end wieder ordnungsgemäß zu schliessen. Viel Spaß beim Ausprobieren!