Vorwort
In diesem Tutorial erkläre ich wie man ein kleines Menü erstellt und erläutere wichtige Standart-Befehle, die jedermann wissen muss!
Falls etwas falsch geschrieben ist, werde ich es ausbessern, leider kann ich nicht auf Syntax-Fehler achten, da ich keine PSP zum testen habe.
_____________________________________________________
Konditionen:
Für das Tutorial wird benötigt:
- PSP mit CFW/HEN
- Einen Script-Editor (z.B Notepad++)
- Grunderfahrung in der Sprache Lua
- Lua Player HM 7
_____________________________________________________
Los gehts!
Fangen wir an und öffnen uns einen Script-Editor am besten ist
Notepad++ dafür geeignet.
Bei
Notepad++ wählt ihr bei "
Sprachen > L > Lua" aus. Nun wird der Text farbig angezeigt, dass hilft euch für eine bessere Übersicht.
Zuerst schreiben wir
Variablen, was Variablen sind wird weiter unten erklärt.
Wir definieren uns eine Variable für die Tasten-Funktion:
-- Variablen --
button = Controls.read()
...
Button ist eine Variable, achtet darauf das die Variablen nicht mit einem Sonderzeichen oder einer Ziffer beginnen. Ihr könnt auch anstatt "button" z.B "pad" nehmen, hängt nicht vom Code ab.
Erklärung:
Button ist eine Variable, ein Bezeichner und kann so geschrieben werden wie man will, aber man achte darauf, dass man kein Sonderzeichen oder Ziffer am Anfang setzt. Button wird zur Funktion "Controls.read()" zugewiesen, d.h immer wenn "button" geschrieben ist, merkt der Lua-Player, dass sich es um eine Variable also um die Funktion Ctrls.read() handelt.
Beispiele:
Falsch:
1vari = Controls.read()
// oder
€ontrol = Controls.read()
Richtig:
variable = funktion
// oder
variable =funktion
_____________________________________________________
Nun fangen wir an Farben zu definieren:
-- Farben --
weiss = Color.new(255,255,255)
Weiss ist die Variable und Color.new(...) ist die Farb-Funktion.
Das zwischen den Klammern sind die Farb-IDs eine ganze Tabelle dazu, findest du hier RPG-Farbtabelle.
Du kannst auch mehrere Farben definieren z.B blabla1 = Color.new(...).
Nach dem das fertig ist, gehen wir zum nächsten Punkt...
_____________________________________________________
Jetzt legen wir richtig los und schreiben nun eine schöne Schleife, damit der Text die ganze Zeit angezeigt bleibt.
Schreib einfach:
Danach fangen wir an den Texte zu schreiben, Beispiel:
screen:print(x,y, "TEXT, farbe)
Über den Befehl "screen':'print" wird der Text auf den Bildschirm angezeigt/gedruckt. Das "X" und "Y" steht für die Koordinaten auf dem PSP-Bildschirm und "farbe" ist die Variable der Farbe.
screen:print(1,1, "Homebrew Menue by DEIN-NAME", weiss)
screen:print(100,100, "--------------------------------", weiss)
screen:print(100,120, "Beschreibung", weiss)
screen:print(100,100, "--------------------------------", weiss)
screen:print(100,160, "Druecke den X-Knopf um zum Spiel zu gelangen", weiss)
screen:print(100,170, "Druecke den O-Knopf um die Homebrew zu beenden", weiss)
screen:print(100,180, "Druecke den Quardrat-Knopf um die Developer-List anzuzeigen", weiss)
Nun gehen wir über zu den IF-Befehlen...
_____________________________________________________
Ein IF-Befehl ist ein Befehl, der Abfragt wann eine Bedingung ausgeführt wird.
IF ist englisch und heißt im deutschen wörtlich übersetzt "wenn".
Ein Beispiel:
if "Bedingung" then
Anweisung
end
Mit then beginnt die Anweisung und mit end wird die Anweisung geschlossen.
Fangen wir an mit der Button-Funktion:
if button:cross() then
dofile("spiel.lua")
end
Die Anweisung "dofile("xxx.lua")" öffnet eine bestimmte lua-Datei, wenn die Bedingung erfüllt worden ist.
Else bedeutet, "sonst". Ist die Bedingung nicht erfüllt wird mit Else eine andere Anweisung ausgeführt. Oben steht button:cross ... Button ist die Variable (wie o.g) und cross ist die Taste, mit der das ganze ausgeführt wird.
Wenn die Taste- gedrückt wird, dann öffnet sich "Spiel.lua" (wenn nicht der komplette Pfad angegeben wird, denkt sich der Lua-Player die Spiel.lua befinde sich im selben Ordner dafür Bitte immer "ms0:/ordner/...").
Aber wenn dies nicht der Fall ist, erscheint der Text zur Aufforderung eine Taste zudrücken.
Immer daraufachten : Die If- wird mit der Else-Verzweigung beendet, deshalb steht unter dem else-Befehl doppelt "end".
End schließt die Anweisung ab.
if button:cross() then
dofile("spiel.lua")
end
if button:circle() then
screen:print(100,190, "Wirklich beenden?", weiss)
if button:cross() then
System.Quit()
end
end
end
if button:square() then
screen:print(100,220, "An dieser Homebrew haben gearbeitet", weiss)
screen:print(100,230, "Programmierer: Name1, Name2 ... Grafiker: Name1, ... etc.", weiss)
end
end
Ganzer Code:
-- Script.lua --
-- Variablen --
button = Controls.read()
-- Farben --
weiss = Color.new(255,255,255)
while true do
screen:print(1,1, "Homebrew Menue by DEIN-NAME", weiss)
screen:print(100,100, "--------------------------------", weiss)
screen:print(100,120, "Beschreibung", weiss)
screen:print(100,100, "--------------------------------", weiss)
screen:print(100,160, "Druecke den X-Knopf um zum Spiel zu gelangen", weiss)
screen:print(100,170, "Druecke den O-Knopf um die Homebrew zu beenden", weiss)
screen:print(100,180, "Druecke den Quardrat-Knopf um die Developer-List anzuzeigen", weiss)
-- IF-Befehle --
if button:cross() then
dofile("spiel.lua")
end
if button:circle() then
screen:print(100,190, "Wirklich beenden?", weiss)
if button:cross() then
System.Quit()
end
end
if button:square() then
screen:print(100,220, "An dieser Homebrew haben gearbeitet", weiss)
screen:print(100,230, "Programmierer: Name1, Name2 ... Grafiker: Name1, ... etc.", weiss)
end
screen.flip()
screen.waitVblankStart()
end
_____________________________________________________
Jetzt erkläre ich euch weitere Begriffe die ich oben nicht erklärt habe.
Buttons:
cross -
circle -
triangle -
square -
start - Start-Taste
Home - Home-Taste
Vergleichsoperatoren:
Bei den Vergleichsoperatoren werden Werte verglichen und gerechnet.
< - kleiner
> - größer
= - gleich (Zuweisungsoperator)
== - gleich (Vergleichsoperator)
!= - ungleich
<= - kleiner oder gleich
>= - größer oder gleich
Rechenzeichen:
Um zu wissen was man rechnen möchte muss man wissen, welche Rechenzeichen es gibt.
Multiplikation: * (Beispiel 5*5 = 25)
Division: / (Beispiel 5/5 = 1)
Addition: + (Beispiel 1+1 = 2)
Subtraktion: - (Beispiel 1-1 = 0)
Algorithmus:
Wichtig ist der Algorithmus, denn er ist ein logischer Ablauf.
Der Algorithmus lässt sich leicht erklären:
Ein Beispiel ist eine Wegstrecken-Planung:
Ablauf:
1. Frage des Nutzers: Wo bin ich ?
1.2 Antwort des Computers: Standort festlegen
2. Frage des Nutzers: Wie weit ist es von hier nach dort?
2.2 Antwort des Comuters: Route berechnen
3. Am Ziel angekommen
Ein Ablauf ist also der Algorithmus.
Die Syntax:
Die Syntax ist ein formaler Ausdruck der Programmiersprachen-Grammatik. Ist der Code nicht der Syntax der Sprache angepasst erscheint ein Syntax-Error, ich denke jeder soll wissen was das ist
.
Deklaration:
Als Deklaration wird bezeichnet, wenn ein Wert mit einer Variable definiert wird, ein Beispiel:
Die Variable ABC wird von int deklariert.
Kommentare:
Ein Kommentar hilft den Entwicklern für bessere Übersicht seines Scriptes.
Ein Kommentar wird nicht in das Programm interpretiert.
Kommentar-Codes:
// Kommentar nicht für Lua
-- Kommentar
/* Kommentar nicht für Lua */
_____________________________________________________
Wer noch Hilfe braucht, meldet sich im Thread
Danke