[TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - Unbekannt - 02.12.2010 18:45
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
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - WinterFrost - 02.12.2010 19:02
Immer, wenn du einen if Befehl beginnst, fehlt bei dir screen:clear, ode rsoll das so sein?
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - Unbekannt - 02.12.2010 19:11
Oh^^ hab ja keine PSP kanns ja nicht genau abspielen.
Werd es gleich mal abändern.
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - Unbekannt - 04.12.2010 20:38
Hat es jemand getestet?
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - James_Cutter - 05.12.2010 18:43
1: Bei dem Link zu den Farben auf PSPKing is am Ende des Links ein Punkt, welcher ihn unbrauchbar macht.
2: als Kommentare sind in LUA nur "--" und "--[ ... ]--" zugelassen. "//" und "/*" werden als Fehler im Code gewertet
3: Ansonsten gutes Tut
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - Unbekannt - 05.12.2010 18:54
@James_Cutter:
1. Danke, habe den Link editiert .
2. Upps, habe vergessen hinzuzufügen, dass diese Kommentare nicht für Lua bestimmt sind .
3. Guter Beitrag .
In PHP kann man auch Bilder zeichnen, ist eigentlich identisch :
<?php
// Bild
header("Content-type: image/png"); // Grafik-Header (image/png) an den Browser senden
// Höhe und Breite
$breite = 425; $hoehe = 150;
// Grafik
$bild = imageCreateTruecolor($breite, $hoehe); // Grafik erstellen
$wasserfarbe = imageColorAllocate($bild, 205, 183, 158); // Farbe für den Hintergrund erstellen imageFill($bild, 0, 0, $wasserfarbe); // Grafik mit der Hintergrundfarbe füllen
// Text-Farbe $linkfarbe = imageColorAllocate($bild, 0, 0, 255); $schriftfarbe = imageColorAllocate($bild, 255, 0, 0); $farbe1 = imageColorAllocate($bild, 0, 0, 0); $farbe2 = imagecolorAllocate($bild, 139, 137, 37);
// Text-Zeichnen ImageString($bild, 4, 5, 0, "Text", $schriftfarbe); // Text in die Grafik zeichnen ImageString($bild, 3, 5, 14, "Text", $linkfarbe); ImageString($bild, 1, 5, 30, "Text", $linkfarbe); ImageString($bild, 1, 5, 130, "Heute ist der ".date("d.m.Y")." wir haben ".date("H:i")." Uhr", $schriftfarbe); ImageString($bild, 1, 5, 115, "Deine IP: " . $_SERVER["REMOTE_ADDR"] . " ", $schriftfarbe); ImageString($bild, 1, 350, 0, "By Unbekannt", $linkfarbe); ImageString($bild, 20, 7, 52, "TEXT", $farbe2); ImageString($bild, 20, 5, 50, "TEXT", $farbe1); ImageString($bild, 20, 7, 72, ":::", $farbe2); ImageString($bild, 10, 5, 70, ":::", $farbe1);
// Rahmen
$rahmen = imageColorAllocate($bild, 0, 0, 0); imageRectangle($bild, 0, 0, 424, 149, $rahmen);
// Output ^^
imagePng($bild); // Ausgabe der Grafik an den Browser senden imageDestroy($bild); // Grafik aus dem Speicher entfernen ?>
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - C4 H4cKeR - 05.12.2010 19:04
1 gutes TUT
kannst du mal ein Bild posten wie es am ende aussieht
lg
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - Unbekannt - 05.12.2010 19:05
kannst du mal ein Bild posten wie es am ende aussieht
Falls etwas falsch geschrieben ist, werde ich es ausbessern, leider kann ich nicht auf Syntax-Fehler achten, da ich keine PSP zum testen habe.
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - _Kai_ - 05.12.2010 19:09
In PHP kann man auch Bilder zeichnen, ist eigentlich identisch :
Ja du benutzt in deinem Beispiel die GDLib. Sie ist seit PHP 4.3 schon enthalten.
Schau dir lieber mal Imagick an. Der Funktionsumfang ist ein welten Unterschied sag ich dir, allerdings ist Imagick eine PECL Extension die zusätzlich auf dem Server installiert werden muss
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - RainMan - 05.12.2010 19:12
irgendwie macht es keinen Sinn, erst zu fragen ob man wirklich beenden will und dann gibts gar keine andere möglichkeit
ansonsten, gutes tut
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - noobie - 05.12.2010 19:14
gutes tut
RE: [TuT] Lua-Menü und Erklärung mancher Begriffe & Funktionen - Unbekannt - 05.12.2010 19:15
In PHP kann man auch Bilder zeichnen, ist eigentlich identisch :
Ja du benutzt in deinem Beispiel die GDLib. Sie ist seit PHP 4.3 schon enthalten.
Schau dir lieber mal Imagick an. Der Funktionsumfang ist ein welten Unterschied sag ich dir, allerdings ist Imagick eine PECL Extension die zusätzlich auf dem Server installiert werden muss
Ich hab dir doch schon in ICQ gesagt das ich PECL brauch .
Außerdem lenkt das total vom Thema ab, habe nur ein Beispiel gesagt ^^. Nichts für ungut .
|