Vollständige Version anzeigen : [Tutorial] LUA "Hello World" Einfache Textaußgabe


ViVi3
15.03.2009, 11:01

Also alle die sich schon mal an dieses TuT trauen bzw. in die PSP Programmierung gehen, Danke!




Hello World

In diesem TuT wird dir erklärt wie du dir schon mal ein eigenes Programm schreiben kannst!
Noch ist es nur eine einfache Textausgabe auf dem Bildschirm...

Forraussetzung für dieses TuT:
Ich weiß in etwa was Programmieren ist

TuT Hello World:

Ich werde dir nun erklären wie wir "unser" erstes Programm gestallten

Um beginnen zu können brauchen wir erst einen Ordner...
Den kannst du jetzt z;B. auf deinem Desktop erstellen, bzw. auch auf deinem Memory Stick (ms0:/PSP/GAME)
Nennen wir den Ordner doch einmal "LUA Hello World" (Kannst ihn auch anders nennen ist klar denk ich )

In diesen Ordner müssen wir jetzt den LUA Player geben... *Download LUA Player RC7*
Ohne LUA Player funktioniert nichts!

Was macht der LUA Player denn eigentlich soo tolles?
Der LUA Player ließt in deiner LUA Datei und übersetzt das ganze für die PSP in verständliche Befehle! Denn LUA ist eine Scriptsprache wie z;B. Perl, AutoIT oder Visual Basic...
Bestes beispiel dafür ist wohl ein GBC Emulator die PSP ist kein Gameboy... Doch durch den Emulator kann die PSP die Rom's wiedergeben...
Genau so ist es eigentlich auch bei LUA...
Eine für die PSP unverständliche LUA Datei wird mit Hilfe des LUA Players für die PSP übersetzt!


Nun erstelle ein Text Dokument... und bennene es um in "script;lua"
Wichtig ist dabei das deine Ordner Optionen richtig eingestellt sind
Sonst sieht das nachher vlt. so aus "script;lua;txt" <-- DAS WOLLEN WIR ABER NICHT!
Falls du das nicht hinbekommst wegen irgenwelchen einstellungen Hier eine script;lua

Ja... nun kopierst du die "script;lua" in den selben Ordner wo auch der LUA Player ist.
{bild down}



Jetzt öffne die "script;lua" mit einem Editor der nicht irgendwelche Formatierungsoptionen bietet...
(Also Open Office, Word, etc. fällt schonmal weg! Einfach mal [Unter Windows] Bearbeiten klicken... Sprich mit dem Text Editor... bzw. dem Lua editor (;;;ps-evolution~in/anwendungsprogrammierung/30515-easy_lua_editor_slash;html)
von einem user namens slash... oder wie ich den PsPad (;;;chip~de/downloads/PSPad_22393723;html)

PSPad hat den Vorteil das er die Zeilenzahlen der Datei anzeigt... (Welche auch ein richtiger Coder brauchen wird! )

Vorteile des Easy LUA Editors:
Speicher direkt in ;lua
Ist Portable und extrem klein!

Wenn du dich für PSPad entschieden hast klicke nach der Installation bitte gleich einmal auf "Ansicht -> Zeilennummerierung"
Denn wenn du später selbstständig Codest wirst du bestimmt einige fehler bekommen... und da sind Zeilennummern schon wichtig!
(Meine Spiele haben durchschnittlich 300 - 600 Zeilen... Aber jetzt nich abschrecken lassen! )


Nun schreieben wir unser Programm!

Als aller erstes müssen wir der "PSP" (dem LUA Player) sagen in welcher Farbe der Text sein soll...

Der Befehl um eine Farbe zu bestimmen geht wie folgt:
Code:

Color;new(255,255,255)

Wobei "255" für den Farbwehrt steht.
"255,255,255" Steht für Weiß! Warum? und wie mische ich das?
Die erste Zahl steht für die Rot anteile... Einstellbar ist dies von 0 bis 255.
Die zweite Zahl steht für Grün, und die Dritte für Blau...

Also im endeffekt RGB (Rot,Grün,Blau)
Wenn "255,255,255" jetzt weiß ist in Schwarz logischerweiße?
Richtig "0,0,0"
Blau wäre z;B. "0,0,255" usw...

Jetz brauchen wir noch etwas womit wir den Farbwehrt speichern!
Genau Variablen! Variablen sind eigentilch nichts anderes als definitionen die mit Zahlwehrten, Buchstaben, Bildern, Tönen, usw. gleichgesetzt werden...
(Kennt ihr aber sicher auch aus Mathe )

Also schreiben wir jetzt:

Code:
blau = Color;new(0,0,255)
statt "blau" kannst du jetzt schreiben was du willst...


Jetzt machen wir den Befehl um den Text aus zu geben...
der befehl dazu lautet:

Code:
screen:print(x,y,"txt",color)
Mit "x,y" ist die Position gemeint... hier gehört narürlich eine Zahl hinein...


[spoiler]nochmal zur erinnerung

+-------> x
|
|
v
y



Also wir schreiben jetz einfach mal "1,1" statt dem "x,y" Das heißt der Text wird ganz oben links Angezeigt.

Wir schreiben jetz einfach mal:

Code:
screen:print(1,1,"Haaallloo!! :D",blau)

Nochmal, zuerst bestimmen wir die Position mit x,y , dann kommen zwischen die "" der Text der Angezeigt werden soll (ACHTUNG: \, ä, ö, ü, etc. werden nicht unterstützt [KEINE SONDERZEICHEN!])
und zum schluss wird noch die Farbe definiert.


Um den Text jetzt anzeigen zu lassen brauchen wir:

Code:

Code:

screen;flip()


Die PSP hat sozusagen 2 Bildschirme... Unsere Ausgabe wird "innen"
um den Bildschirm jedoch umzufrehen brauchen wir "screen;flip()"
Dann wird der Text sichtbar!


Jetzt brauchen wir eine Schleife!
Eine schleife wiederholt einen Vorgang so lange bis eine Variable sie beendet bzw. endlos (Sogenannte "Endlosschleife")

Wir benötigen jedoch eine Endlosschleife.
Befehl für die Endlosschleife:

Code:
while true do

und wichtig! Sie wird mit:

Code:
end
beendet

Sprich alles was zwischen "while true do" und "end" steht wird ständig wiederholt!
Das ist jetzt also unser "Mainloop". Jedes Programm braucht so ein Mainloop
da der LUA Player sonst einmal alles erledigen würde, und dann nichts mehr machen kann...
Ohne Mainloop zeigt der LUA Player folgenden Fehler an:

Code:
Error: (null)
[quote]

Mit:

Code:
[quote]
screen;waitVblankStart()


wird befohlen wie lange der LUA Player warten soll um die nächste ausgabe Anzuzeigen...
Normalerweiße schreibt man dann einen bestimmten Wehrt in die Klammer...
zum Beispiel:

Code:
screen;waitVblankStart(300)

Das wären dann 3 Sekunden....
Aber das brauchen wir jetzt nicht!

Wir wollen das er ganicht wartet!
daher lassen wie die Klammern leer...

Der Befehl "screen;waitVblankStart()" kommt nur in die Schleife!

Code:
while true do
screen;waitVblankStart()
end


So sollte es dann aussehn!

Was bewirkt das jetzt?
Dem LUA Player wird damit gesagt das er bis zum nächsten durchgang 0 Sekunden warten soll...
Und den Text somit ständig Anzeigt.


CODE ZUSAMMENFASSUNG:

Code:
blau = Color;new(0,0,255)

screen:print(1,1,"Haaallloo!! :D",blau)
screen;flip()

while true do
screen;waitVblankStart()
end


Jetzt nur noch speichern, und auf der PSP starten!
Fertig!!!

Sollte wirklich für jeden klar sein!

MFG Teboy007

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
Ähnliche Themen zu [Tutorial] LUA "Hello World" Einfache Textaußgabe


raid-rush.ws | Imprint & Contact pr