Funktionen
Da du jetzt alles Grundlegende durchgekaut hast, können wir uns nun an das "optionale" wagen: die Funktionen. So richtig "optional" sind sie nun doch nicht. Aber für einfache Anwendungen braucht man sie dann auch nicht unbedingt. Mit Funktionen kann man den Code übersichtlicher und etwas aufgeräumter gestalten. Und man kann sich mit ihrer Hilfe auch viele Zeilen Code sparen. Eine Funktionen beinhaltet einen bestimmten Code, der irgendetwas bewirkt. Wenn man zum Beispiel in einer Anwendung mit verschiedenen Tasten immer ein und den selben Code ausführen will, müsste man ja jedesmal für jede Taste den Code schreiben. Mit Funktionen muss man diesen Code nur einmal schreiben. Man ruft die Funktion halt dann einfach mit den entsprechenden Tasten auf. Vielleicht ist es verständlicher, wenn ich mal ein konkretes Codebeispiel bringe:
bild = Image.load("bild.png") function Viereck() screen:blit(0,0,bild,false) end while true do pad = Controls.read() if pad:cross() then Viereck() end if pad:square() then Viereck() end screen.flip() screen.waitVblankstart() end
Das sollte mal die Funktionsweise veranschaulichen. Bis hierher sollte das ganze doch sehr leicht verständlich sein. Der Hauptcode einer Funktion lautet also so:
function name() dein code hier end
Ganz einfach oder? Es geht aber natürlich auch etwas komplizierter:
bild1 = Image.load("bild1.png") bild2 = Image.load("bild2.png") bild3 = Image.load("bild3.png") function Viereck(x,y,bild) screen:blit(x,y,bild,false) end while true do pad = Controls.read() if pad:cross() then Viereck(0,0,bild1) end if pad:circle() then Viereck(150,150,bild2) end if pad:triangle() then Viereck(300,120,bild3) end screen.flip() screen.waitVblankstart() end
Das dürfte beim ersten Überfliegen des Codes ersteinmal für Verwirrung sorgen. Ist aber alles halb so wild. Am Anfang laden wir einfach 3 verschiedene Bilder in den RAM-Speicher der PSP. Dann folgt unsere eigentliche Funktion mit dem Namen Viereck. Der Funktionscode ist hier screen:blit(x,y,bild,false). Das sollte keine Probleme bereiten. x und y sind die beiden Koordinaten, bild steht für das anzuzeigende Bild, und Transparenz ist deaktiviert (weil false). Aber warum steht in den Klammern hinter "Viereck" so komisches Zeug? Das ist grob gesagt nichts anderes wie ein "Variablenwerte-Übermittler". Die Funktion wird ja z.B. mit der X-Taste aufgerufen. Dabei soll ein Bild angezeigt werden. Dieses Bild braucht aber ja auch richtige Koordinaten und ein richtiges, vorhandenes Bild. Mit "Viereck(0,0,bild1)" weisen wir den Variablen "x","y" und "bild" Werte zu. So würde im Falle eines X-Tastedrucks das Bild "bild1.png" auf den Koordinaten 0 und 0 angezeigt. Wie muss man also die Variablen innerhalb einer Funktion verstehen? Man legt schlicht und einfach fest, welche Werte man in die Funktion an welcher Stelle einsetzen kann. Diese Werte können dann innerhalb der Funktion genutzt werden. Achtung: Die Werte gelten auch bloß innerhalb der Funktion und sind nicht außerhalb gültig.Ich hoffe ihr habt es verstanden^^...bei Problemen unf Fragen bitte ins Forum (http://www.bumuckl.com) posten. Es gibt dann schnellstmöglich Hilfe...