Antwort schreiben  Thema schreiben 
Verfasser Nachricht
WinterFrost
Moderator a.D.


Beiträge: 2.667
Gruppe: Mod a.D.
Registriert seit: Aug 2010

Status: Offline
Danke erhalten: 3152
Beitrag: #1
xPSP  [LUA TUT]Kleines Programm

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

Code:
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

Code:
while true do

Darauf folgt folgender Befehl :

Code:
screen:clear()

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.

Code:
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

Code:
pad =Controls.read()

Jetzt geben wir an was beim drücken einer beliebigen Taste passieren soll.

Code:
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

Code:
System.copyFile

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.

Code:
System.message()

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.

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

Code:
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

Code:
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:

Code:
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

Code:
System.copyFile()

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:

Code:
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


DownloadDownload

Wenn ihr das Tutorial erfolgreich befolgt habt, dann habt ihr ein kleines Programm geschrieben.
Ich hoffe das Tutorial hat euch gefallen.

MfG

Dieser Beitrag wurde zuletzt bearbeitet: 11.11.2010 17:14 von WinterFrost.

11.11.2010 17:04
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
The-Chief-069 (Aug-3-2011), gruschi (Jun-1-2011), Cor7eZ (Jan-26-2011), Vladek (Dec-11-2010), RainMan (Nov-11-2010), Peda1996 (Nov-11-2010), PSFAQ (Nov-11-2010)
PSFAQ
Banned


Beiträge: 1.006
Gruppe: Banned
Registriert seit: Nov 2010

Status: Offline
Danke erhalten: 333
Beitrag: #2
RE: [LUA TUT]Kleines Programm

Cooles TuT,Winterfrost,Danke.



________________________________________
Der Friseur von GeoHot hat ein iPhone , unjailbreaked Big Grin

11.11.2010 17:20
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
WinterFrost
Moderator a.D.


Beiträge: 2.667
Gruppe: Mod a.D.
Registriert seit: Aug 2010

Status: Offline
Danke erhalten: 3152
Beitrag: #3
RE: [LUA TUT]Kleines Programm

Thx.
Wie finden die anderen das Tut?

MfG

11.11.2010 17:53
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
fixit98
Experte
****


Beiträge: 610
Gruppe: User
Registriert seit: Nov 2009

Status: Abwesend
Danke erhalten: 525
Beitrag: #4
xPSP  RE: [LUA TUT]Kleines Programm

WinterFrost :
Thx.
Wie finden die anderen das Tut?

MfG


Ist jetzt nichts schweres Wink
Aber gut erklärt,für Noobs sicher interessant !



11.11.2010 19:28
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
WinterFrost
Moderator a.D.


Beiträge: 2.667
Gruppe: Mod a.D.
Registriert seit: Aug 2010

Status: Offline
Danke erhalten: 3152
Beitrag: #5
RE: [LUA TUT]Kleines Programm

Es soll ja auch nicht schwer sein, aber wie du schon schriebst ist es auch eher etwas für Anfänger.

MfG

11.11.2010 19:45
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Namenloser
Redakteur a.D.
*


Beiträge: 2.683
Gruppe: User
Registriert seit: Apr 2009

Status: Offline
Danke erhalten: 2111
Beitrag: #6
RE: [LUA TUT]Kleines Programm

@Winterfrost
Dir ist schon klar das du mit diesem tut einen weiteren großen aufruf gestartet hast das jede Woche noch mehr Easy Installer erscheinen werden ? Big Grin

Aber sonst gutes Tut Tongue Diesesmal kann ich nicht benörgeln ^^

11.11.2010 21:28
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Cor7eZ (Jan-26-2011), HacKmaN (Dec-11-2010), WinterFrost (Nov-11-2010)
WinterFrost
Moderator a.D.


Beiträge: 2.667
Gruppe: Mod a.D.
Registriert seit: Aug 2010

Status: Offline
Danke erhalten: 3152
Beitrag: #7
RE: [LUA TUT]Kleines Programm

Och mist, dass habe ich nicht bedacht.^^

MfG

Dieser Beitrag wurde zuletzt bearbeitet: 11.11.2010 21:30 von WinterFrost.

11.11.2010 21:30
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #8
RE: [LUA TUT]Kleines Programm

Exellentes TuT. Lua ist aber viel zu einfach Wink, müsste jeder können.




Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.
11.11.2010 21:35
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Vladek
Banned


Beiträge: 253
Gruppe: Banned
Registriert seit: Sep 2010

Status: Offline
Danke erhalten: 115
Beitrag: #9
RE: [LUA TUT]Kleines Programm

danke, sowas in der art habe ich gesucht Wink


Ich hasse möchtegern MODS !

---PSPgo mit 6.20 TN HEN-B
--- ne ps3 und ne fat
11.12.2010 18:45
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang