Shop    Board    Downloads

Willkommen bei PS-Evolution: Board.
Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.


PSP Tutorials Alle möglichen Tutorials rund um die PSP.

 
Themen-Optionen
Alt 23.02.2008, 19:38   #1 (permalink)
*Dev Team* Member
 
 
Registriert seit: 29.07.2007
Beiträge: 635

Secret Raven eine Nachricht über ICQ schicken
Standard [TUT]PsP Programmierung: Lua

Willkommen zu meinem Lua-Tutorial!
Um Anwendungen für die PsP in Lua zu programmieren könnte man natürlich auch das Notepad verwenden, aber ich würde euch zum programmieren am Pc
File Details-LuaDevKit-R2-final-beta-(Major-Bug-Fix)-PSP-Development - empfehlen!! Da ist dann auch gleich ein Windows LuaPlayer dabei...
So um das ganze nun auf der PsP abzuspielen braucht ihr noch den Lua Player:
luaplayer.org - Lua Player 0.20 Downloads
(Man kann auch eine Eboot erstellen, aber bei mir zumindest ist diese Funktion ziemlich Buggy...^^)

So und nun zum eigentlichen Tut, ich habe die ersten Schritte sehr ausführlich erklärt, aber ich hoffe das das dann zumindest alle verstehen
Zuerst werde ich euch zeigen wie man Variablen in Lua deklariert.
Variablen sind eigtl. wenn man sie auf Deutsch bezeichnen müsste Wertträger. Diesen kann man Werte zuordnen () , kurz man deklariert sie.
Variablen spielen in der Programmierung eine sehr große Rolle, man kann ihnen z.B. Text, Zahlen, aber auch Farben und Bilder zuordnen.
So lange Rede kurzer Sinn, wir werden wie in fast allen Tutorials mit dem berühmten Hello World! - Programm anfangen.
Zuerst geben wir einer Variable die wir meinetwegen color nennen(man könnte sie auch einfach farbe oder weiß nennen...) die Farbe weiß.

Code:
color = Color.new(255,255,255) --Farbe weiß
So eigtl. sollte es klar sein, wir deklarieren die Variable mit dem Namen color mit einer Farbe die den RGB (Rot - Grün - Blau) - Wert 255,255,255 hat.
Eine sehr praktische Tabelle zu den RGB - Werten findet ihr hier:
RGB Color Codes
Das "--Farbe weiß" ist ein Kommentar und wird von der PsP bzw. vom Lua Player nicht beachtet...
So nun schreiben wir endlich unser "Hello World!" und zwar mit dem Befehl:

Code:
screen:print(x,y,"Hier der Text",farbe)
x ->Der X-Wert an dem der Text auf dem Bildschirm erscheinen soll
y ->Das Gleiche bloß halt der Y-Wert
"Text" -> Der Text der ausgegeben werden soll
farbe -> Hier kommt eine Variable mit einer Farbe oder Color.new rein.
Allerdings finde ich Variablen praktischer.
Als nächstes kommt der

Code:
screen.flip()
- Befehl. Das muss man sich so vorstellen:
Der Bildschirm der PsP ist wie eine Tafel die man drehen kann. Man schreibt nun mit z.B. screenrint einen Befehl auf die Rückseite der Tafel, kann aber noch nicht gesehen. Mit screen.flip() wird die Tafel dann gedreht und man sieht was man befohlen hat.
Als letztes noch:

Code:
screen.waitVblankStart(Zahlenwert)
Mit dem Befehl wartet die PsP die Zeit die in Klammern steht. Einfach mal ein bisschen ausprobieren, mir wurde mal gesagt das die PsP bei einem Wert von 60 1 Sekunde wartet, das stimmt aber meiner Meinung nach nicht..

So und nun endlich zum Programm:

Code:
color = Color.new(255,255,255) --Farbe: Weiß
screen:print(100,100, "Hello World!" , color)
screen.flip()
screen.waitVblankStart(180)
Gut^^ Das ganze kann man natürlich auch mit Zahlen machen:

Code:
color = Color.new(255,255,255) --Farbe: Weiß
a=3
b=4
screen:print(100,100, a*b , color)
screen.flip()
screen.waitVblankStart(180)
Sehr wichtig sind auch Kontrollstrukturen und Schleifen.
Auf Deutsch:
Wenn/Solange irgendwas zutrifft dann mache dies und das

In Lua sieht das Ganze so aus:

Code:
while true do
--Code
end
Dies ist eine Dauerschleife, da sie keine Bedingung besitzt die geändert werden kann, d.h. der Inhalt wird dauerhaft wiederholt.
Als nächstes gibt es noch:

Code:
for a = 1 , 3 do
--Code
end
Für a = 1 bis a = 3 mache ...
oder:

Code:
while a == 2 do
--Code
end
Solange a = 2 mache...

Code:
if pad:cross() then
--Code
elseif
--Code
end
Wenn X gedrückt wird mache dies... wenn nicht mache das...
Damit sind wir bei den Tastenabfragen, dafür deklariert man zuerst eine Variable, ich habe sie pad genannt. Also:

Code:
pad = Controls.read() --Variable deklarieren
pad:cross()
pad:triangle()
pad:circle()
pad:square()
pad:up()
pad:down()
pad:left()
pad:right()
pad:l()
pad:r()
pad:start()
pad:home()
pad:select()
pad:note()
pad:analogx()
pad:analogy()
Die andere Möglichkeit als Bedingung einer If-Abfrage ist der Vergleich von Werten: z.B:

Code:
wert=6
if wert == 6 then
--Code
end (hier könnte auch wieder elseif stehen)
Zum Vergleichen gibt es diese Operatoren:

Code:
==   -> Gleich
~=   ->Ungleich
<
>
<=
>=
So als letztes noch wie man denn endlich Bilder auf dem Bildschirm ausgibt.
Es können Bilder im .jpg und .png - Format benutzt werden.
Also erst eine Variable deklarieren und dann durch den

Code:
screen:blit(x,y,"Pfad zum Bild",true)
- Befehl ausgeben.

x,y ->Die Position auf dem Bildschirm in Pixel
"Pfad" -> Der Pfad zum Bild, falls das Bild im gleichen Verzeichniss liegt,
muss man nur den Namen des Bildes und das Format angeben:
z.B."bg.jpg"
true -> Gibt an ob das Bild transparent dargestellt werden soll oder nicht.

Bsp:

Code:
menuBackground = Image.load("bg.jpg")
while true do
screen:blit(0,0, menuBackground , false)
screen.flip()
screen.waitVblankStart()
end
So das war der erste Teil meines Tutorials Viel Spaß beim Programmieren!!

MfG
Secret
__________________

Geändert von Secret Raven (24.02.2008 um 09:30 Uhr).
Secret Raven ist offline   Mit Zitat antworten
Alt 23.02.2008, 19:45   #2 (permalink)
PS-Profi
 
Benutzerbild von Slash
 
Registriert seit: 05.10.2007
Alter: 19
Beiträge: 579

Slash eine Nachricht über ICQ schicken
Standard

Und was passiert dann wenn man fertig is? habs noch nicht getestet^^ aber würde gerne wissen was das endergebniss ist^^
__________________
!!!Besuch MICH | BrowserGame !!!
Slash ist offline   Mit Zitat antworten
Alt 23.02.2008, 20:00   #3 (permalink)
*Dev Team* Member
 
 
Registriert seit: 29.07.2007
Beiträge: 635

Secret Raven eine Nachricht über ICQ schicken
Standard ^^

sagen wirs so NOCH nix^^ in diesem TuT zumindest, im nächsten Teil pack ich dann noch nen kleinen Übungscode dazu... is halt die absolute Grundkenntniss in Lua... is leider imma so erst die Arbeit dann das vergnügen
__________________
Secret Raven ist offline   Mit Zitat antworten
Alt 23.02.2008, 20:02   #4 (permalink)
Dev~Team ex-Oberhaupt.. ツ
 
Benutzerbild von -DaRealXecon-
 
Registriert seit: 03.01.2008
Alter: 17
Beiträge: 1.436

-DaRealXecon- eine Nachricht über ICQ schicken
Unglücklich

Ach... Das kann ich ja alles schon...
Ich mag mal wieder was neues dazu lernen...

Mtg.
__________________



-DaRealXecon- ist offline   Mit Zitat antworten
Alt 23.02.2008, 20:04   #5 (permalink)
*Dev Team* Member
 
 
Registriert seit: 29.07.2007
Beiträge: 635

Secret Raven eine Nachricht über ICQ schicken
Standard

Ich hoff im nächsten is dann au was neues für dich dabei^^
__________________
Secret Raven ist offline   Mit Zitat antworten
Alt 23.02.2008, 20:06   #6 (permalink)
Dev~Team ex-Oberhaupt.. ツ
 
Benutzerbild von -DaRealXecon-
 
Registriert seit: 03.01.2008
Alter: 17
Beiträge: 1.436

-DaRealXecon- eine Nachricht über ICQ schicken
Daumen hoch

Ok... thx! Dann such mal was kompliziertes zusammen xDD

Mfg.
__________________



-DaRealXecon- ist offline   Mit Zitat antworten
Alt 19.03.2008, 15:02   #7 (permalink)
PS-Junky
 
Benutzerbild von Ick bin's
 
Registriert seit: 26.01.2008
Beiträge: 206

Standard

Geiles TUT^^
Mich würde mal interessieren wann der 2te Teil kommt und kann man das alles acuh mit diesem HB programmieren???
Müsste doch eig gehen.
PSPSource :: Die erste deutschsprachige Homebrew-Community für die PSP: [Release] Dow! 0.2 - Develope on the go!
__________________
Ick bin's ist offline   Mit Zitat antworten
Alt 21.03.2008, 12:32   #8 (permalink)
*Dev Team* Member
 
 
Registriert seit: 29.07.2007
Beiträge: 635

Secret Raven eine Nachricht über ICQ schicken
Standard

jo klar, hab ich au auf der PsP^^ die 0.1 war leider etwas buggy aber die 0.2er damit kann man schon kleine Sachen machen^^
__________________
Secret Raven ist offline   Mit Zitat antworten

Lesezeichen

Themen-Optionen



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 Uhr.


Powered by vBulletin® Version 3.8.1 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.