Willkommen zu meinem
Lua-Tutorial!
Um Anwendungen für die PsP in
Lua zu programmieren könnte man natürlich auch das Notepad verwenden, aber ich würde euch zum programmieren am Pc
File Details-LuaDevKit-R2-final-beta-(Major-Bug-Fix)-PSP-Development - empfehlen!! Da ist dann auch gleich ein Windows LuaPlayer dabei...
So um das ganze nun auf der PsP abzuspielen braucht ihr noch den
Lua Player:
luaplayer.org - Lua Player 0.20 Downloads
(Man kann auch eine Eboot erstellen, aber bei mir zumindest ist diese Funktion ziemlich Buggy...^^)
So und nun zum eigentlichen Tut, ich habe die ersten Schritte sehr ausführlich erklärt, aber ich hoffe das das dann zumindest alle verstehen

Zuerst werde ich euch zeigen wie man Variablen in
Lua deklariert.
Variablen sind eigtl. wenn man sie auf Deutsch bezeichnen müsste Wertträger. Diesen kann man Werte zuordnen (

) , kurz man deklariert sie.
Variablen spielen in der Programmierung eine sehr große Rolle, man kann ihnen z.B. Text, Zahlen, aber auch Farben und Bilder zuordnen.
So lange Rede kurzer Sinn, wir werden wie in fast allen Tutorials mit dem berühmten Hello World! - Programm anfangen.
Zuerst geben wir einer Variable die wir meinetwegen color nennen(man könnte sie auch einfach farbe oder weiß nennen...) die Farbe weiß.
Code:
color = Color.new(255,255,255) --Farbe weiß
So eigtl. sollte es klar sein, wir deklarieren die Variable mit dem Namen color mit einer Farbe die den RGB (Rot - Grün - Blau) - Wert 255,255,255 hat.
Eine sehr praktische Tabelle zu den RGB - Werten findet ihr hier:
RGB Color Codes
Das "--Farbe weiß" ist ein Kommentar und wird von der PsP bzw. vom
Lua Player nicht beachtet...
So nun schreiben wir endlich unser "Hello World!" und zwar mit dem Befehl:
Code:
screen:print(x,y,"Hier der Text",farbe)
x ->Der X-Wert an dem der Text auf dem Bildschirm erscheinen soll
y ->Das Gleiche bloß halt der Y-Wert
"Text" -> Der Text der ausgegeben werden soll
farbe -> Hier kommt eine Variable mit einer Farbe oder Color.new rein.
Allerdings finde ich Variablen praktischer.
Als nächstes kommt der
- Befehl. Das muss man sich so vorstellen:
Der Bildschirm der PsP ist wie eine Tafel die man drehen kann. Man schreibt nun mit z.B. screen

rint einen Befehl auf die Rückseite der Tafel, kann aber noch nicht gesehen. Mit screen.flip() wird die Tafel dann gedreht und man sieht was man befohlen hat.
Als letztes noch:
Code:
screen.waitVblankStart(Zahlenwert)
Mit dem Befehl wartet die PsP die Zeit die in Klammern steht. Einfach mal ein bisschen ausprobieren, mir wurde mal gesagt das die PsP bei einem Wert von 60 1 Sekunde wartet, das stimmt aber meiner Meinung nach nicht..
So und nun endlich zum Programm:
Code:
color = Color.new(255,255,255) --Farbe: Weiß
screen:print(100,100, "Hello World!" , color)
screen.flip()
screen.waitVblankStart(180)
Gut^^ Das ganze kann man natürlich auch mit Zahlen machen:
Code:
color = Color.new(255,255,255) --Farbe: Weiß
a=3
b=4
screen:print(100,100, a*b , color)
screen.flip()
screen.waitVblankStart(180)
Sehr wichtig sind auch Kontrollstrukturen und Schleifen.
Auf Deutsch:
Wenn/Solange irgendwas zutrifft dann mache dies und das
In
Lua sieht das Ganze so aus:
Code:
while true do
--Code
end
Dies ist eine Dauerschleife, da sie keine Bedingung besitzt die geändert werden kann, d.h. der Inhalt wird dauerhaft wiederholt.
Als nächstes gibt es noch:
Code:
for a = 1 , 3 do
--Code
end
Für a = 1 bis a = 3 mache ...
oder:
Code:
while a == 2 do
--Code
end
Solange a = 2 mache...
Code:
if pad:cross() then
--Code
elseif
--Code
end
Wenn X gedrückt wird mache dies... wenn nicht mache das...
Damit sind wir bei den Tastenabfragen, dafür deklariert man zuerst eine Variable, ich habe sie pad genannt. Also:
Code:
pad = Controls.read() --Variable deklarieren
pad:cross()
pad:triangle()
pad:circle()
pad:square()
pad:up()
pad:down()
pad:left()
pad:right()
pad:l()
pad:r()
pad:start()
pad:home()
pad:select()
pad:note()
pad:analogx()
pad:analogy()
Die andere Möglichkeit als Bedingung einer If-Abfrage ist der Vergleich von Werten: z.B:
Code:
wert=6
if wert == 6 then
--Code
end (hier könnte auch wieder elseif stehen)
Zum Vergleichen gibt es diese Operatoren:
Code:
== -> Gleich
~= ->Ungleich
<
>
<=
>=
So als letztes noch wie man denn endlich Bilder auf dem Bildschirm ausgibt.
Es können Bilder im .jpg und .png - Format benutzt werden.
Also erst eine Variable deklarieren und dann durch den
Code:
screen:blit(x,y,"Pfad zum Bild",true)
- Befehl ausgeben.
x,y ->Die Position auf dem Bildschirm in Pixel
"Pfad" -> Der Pfad zum Bild, falls das Bild im gleichen Verzeichniss liegt,
muss man nur den Namen des Bildes und das Format angeben:
z.B."bg.jpg"
true -> Gibt an ob das Bild transparent dargestellt werden soll oder nicht.
Bsp:
Code:
menuBackground = Image.load("bg.jpg")
while true do
screen:blit(0,0, menuBackground , false)
screen.flip()
screen.waitVblankStart()
end
So das war der erste Teil meines Tutorials Viel Spaß beim Programmieren!!
MfG
Secret