In diesem Tutorials zeige ich euch, wie ihr in LUA ein kleines Programm schreibt.
Um dieses Tutorial befolgen zu können , solltet ihr einige Vorkenntnisse in LUA besitzen.
Es reicht allerdings aus, wenn ihr dieses Tutorial bereits befolgt und auch verstanden habt.
Um dieses Tutorial auch zu verstehen solltet ihr es aufmerksam durchlesen.
Das "Programm" wird so aussehen:
Nun, fangen wir an.
Wir definieren zuerst eine Farbe, in unserem Falle wäre das
white = Color.new(255,255,255)
ihr könnt natürlich mehrere Farben definieren und die Farben später ändern.
Nun setzen wir alles in eine schleife, sodass alle Tasten dauerhaft abgefragt und die Texte ebenfalls dauerhaft angezeigt werden.
Dies tuen wir mit
Darauf folgt folgender Befehl :
Dieser Befehl sorgt dafür das der ganze Bildschirm Inhalt gelöscht wird.
Dies müssen wir tuen, damit sich die verschiedenen Texte der beiden Scripte später nicht überlappen.
Das Programm würde auch ohne diesen Befehl funktionieren, nur wie oben schon genannt würden sich die beiden Texte später überlappen.
Das war ein kleiner Teil des Codes, kommen wir zum nächsten Teil.
screen:print(1,1,"Druecke X um eine Datei von A nach B zu kopieren.", white)
screen:print(1,11,"Druecke O um zu beenden", white)
Dieses Stück des Codes gibt an, was auf dem Bildschirm angezeigt werden soll.
Wenn ihr zuvor mehrere Farben definiert habt, dann könnt ihr die Farbe des Textes natürlich auch ändern.
Als nächsten eröffnen wir die Tastenerkennung mit
Jetzt geben wir an was beim drücken einer beliebigen Taste passieren soll.
if pad:cross() then
System.copyFile("text.txt","ms0:/PSP/text.txt",1)
System.message("Die Datei wurde erfolgreich kopiert.",0)
if System.buttonPressed(0)~=1 then
dofile ("script2.lua")
end
else
if pad:circle() then
System.Quit()
end
end
ist ein Befehl, der eine Datei von einem Ort zum anderen kopiert.
In die Klammer wird der Dateipfad geschrieben, also von wo die Datei kopiert werden soll und wohin sie kopiert werden soll.
In unserem Falle wäre das eine Text-Datei in unserem Programm Ordner die nach PSP/GAME kopiert wird.
gibt eine Systemnachricht auf den PSP Bildschirm aus.
In die Klammer wird die Nachricht geschrieben, die angezeigt werden soll. Hinter der Nachricht kommt eine Zahl, diese Zahl kann entweder 1 oder 0 sein.
Mit 1 würden wir eine Nachricht darstellen die eine Ja, Nein und eine Zurück Option hat.
Mit 0 würden wir allerdings eine Nachricht darstellen die nur eine Zurück Option hat, so wie unsere Nachricht.
Wenn X gedrückt wird, dann wird also eine Datei von A nach B kopiert und eine Nachricht angezeigt, wenn die Datei erfolgreich kopiert wurde.
if System.buttonPressed(0)~=1 then
dofile ("script2.lua")
end
Durch dieses Codestück wird angegeben was passiert, wenn wir in der Systemnachricht Zurück (Kreis) drücken.
In unserem Falle wird dann ein Script namens sript2.lua geladen.
Mit diesesm Script kopieren wir später die kopierte Datei wieder zurück, aber dazu später mehr.
Mit end beenden wir einfach den soeben eröffneten if-Befehl.
Als nächtes legen wir fest, was beim Drücken der Kreis Taste passiert.
if pad:circle() then
System.Quit()
end
end
Wenn Kreis gedrückt wird, wird das Programm beendet, dass sollte klar sein.
Die beiden end's beenden den if-Befehl und die Tastenerkennung.
Jetzt bringen wir das ganze noch auf den PSP Bildschirm, mit
screen.flip()
screen.waitVblankStart()
end
Das sollte auch klar sein, screen.flip() bringt alles auf den Bildschirm, screen.waitVblankStart() würde angeben wie lange alles angezeigt und abgefragt werden soll, da wir aber alles in einer while-Schleife laufen haben, bleibt die Klammer einfach leer.
end beendet das ganze Script.
Das ganze Script sieht dann so aus:
white = Color.new(255,255,255)
while true do
screen:clear()
screen:print(1,1,"Druecke X um eine Datei von A nach B zu kopieren.", white)
screen:print(1,11,"Druecke O um zu beenden", white)
pad =Controls.read()
if pad:cross() then
System.copyFile("text.txt","ms0:/PSP/text.txt",1)
System.message("Die Datei wurde erfolgreich kopiert.",0)
if System.buttonPressed(0)~=1 then
dofile ("script2.lua")
end
else
if pad:circle() then
System.Quit()
end
end
screen.flip()
screen.waitVblankStart()
end
Kommen wir nun zum zweiten Script.
Inhaltlich sind die beiden Scripte eigentlich gleich, nur der Text ist etwas anders und der Dateipfad bei
ist ebenfalls anders.
Deshalb werde ich das zweite Script nicht weiter erklären, denn es ist fast identisch mit dem ersten Scripit.
Der Unterschied ist nur das im Text statt "Drücke X um eine Datei von A nach B zu kopieren" "Drücke X um eine Datei von B nach A zu kopieren" steht und die Datei wieder zurück kopiert wird.
Also sieht das zweite Script so aus:
white = Color.new(255,255,255)
while true do
screen:clear()
screen:print(1,1,"Druecke X um eine Datei von B nach A zu kopieren.", white)
screen:print(1,11,"Druecke O um zu beenden", white)
pad =Controls.read()
if pad:cross() then
System.copyFile("ms0:/PSP/text.txt","text.txt",1)
System.message("Die Datei wurde erfolgreich kopiert.",0)
if System.buttonPressed(0)~=1 then
dofile ("script.lua")
end
else
if pad:circle() then
System.Quit()
end
end
screen.flip()
screen.waitVblankStart()
end
Download
Wenn ihr das Tutorial erfolgreich befolgt habt, dann habt ihr ein kleines Programm geschrieben.
Ich hoffe das Tutorial hat euch gefallen.
MfG