Heute ist es unser Ziel ein Menü in Lua HM zucoden.
Ihr braucht erstmal einen Editor wie PSPad und einen Lua Player.Am besten ihr nehmt den Lua HM 7 EBOOT
So dann fangen wir mal an:
Als erstes Laden wir ein Bild das den Hintergrund bilden soll,das geht so:
Bildname = Image.load("Bild.png/jpg")
Da wir das geschafft haben bestimmen wir noch die Farben die wir bei der Schrift verwenden wollen:
white = Color.new(255,255,255) - Weiß
black = Color.new(0,0,0) - Schwarz
red = Color.new(255, 0, 0) - Rot
green = Color.new(0, 255, 0) -Grün
blue = Color.new(0,0,255) -Blau
light_blue = Color.new(0,180,255) - Hell Blau
orange = Color.new(235,115,0) - Orange
yellow = Color.new(255,255,0) - Gelb
gray = Color.new(160,160,160) -Grau
So jetzt lassen wir das Bild erscheinen und sagen der PSP bei welcher Textreihe sie anfängt:
current = 1 – Da wo die PSP ist :D
while true do – Was die PSP machen soll
pad =Controls.read() – Initialisierung der Tasten
screen:clear() – Bildschirm
screen:blit(0,0,Bildname) – Koordinaten des Bildes (0,0 = immer ganze Bildschirm) Bild anzeigen
Nun sagen wir der PSP was sie tun soll wenn Current geändert wird:
if current == 1 then --Wenn Current auf 1 ist dann:
screen:clear()
screen:blit(0,0,Bildname) -Zeigt das Bild an
screen:print(10,30,"Menü TuT bei D!S",green) Schreibt den Text Koordinaten 10,30
screen:print(10,40,":)",black) – Schreibt den Text (darauf achten das man eine Reihe runter geht und das man eine andere Farbe wählt als die erste,damit man unterscheiden kann wo die PSP ist!
screen:print(10,50,"Beenden",black) -- Wieder das gleiche! Die Farbe ist natürlich auch gleich mit der 2ten,weil die PSP ja erst beim Ersten ist!
end --Beendet den Code
Wenn Current 2 ist dann:
if current == 2 then --Wenn Current auf 2 ist dann:
screen:clear()
screen:blit(0,0,Bildname) -Zeigt das Bild an
screen:print(10,30,"Menü TuT bei D!S",black)
screen:print(10,40,":)",green)
screen:print(10,50,"Beenden",black)
end
Da die PSP jetzt bei 2 ist muss natürlich der 2 Text jetzt in Grün dargestellt werden und der erste Text in Schwarz! Der 3te bleibt nach wievor schwarz!
if current == 3 then
screen:clear()
screen:blit(0,0,Bildname) -Zeigt das Bild an
screen:print(10,30,"Menü TuT bei D!S",black)
screen:print(10,40,":)",black)
screen:print(10,50,"Beenden",green)
Da nun die PSP bei 3 ist muss auch der Dritte Text grün sein!
Die beiden anderen bleiben Schwarz!
So nun müssen noch bestimmen was die PSP machen soll wenn Oben oder unten gedrückt wird und das es dann wieder nach oben bzw unten springt!
Das geht so:
if pad:up() and oldpad:up() ~= pad:up() then
current = current - 1 Zeigt an was die PSP macht wenn Oben gedrückt wird, sie wechselt Current,so wie wir es wollen.
end
if pad:down() and oldpad:down() ~= pad:down() then
current = current + 1 --Zeigt an was die PSP macht wenn Unten gedrückt wird, sie wechselt Current,so wie wir es wollen.
end -- Beendet Code
if current == 4 then --Wenn Current 4 ist springt es wieder auf 1 und andersrum!
current = 1
end
if current == 0 then
current = 3
end
Jetzt sagen wir der PSP noch was sie zu tun hat wenn z.B Current 3 ist und Kreuz ( gehen natürlich auch andere) gedrückt wird:
if pad:cross() and current == 1 then --Wenn Current 1 ist und Kreuz gedrückt wird dann:
Wird bei uns nicht benötigt!
end
if pad:cross() and current == 2 then
Wird bei uns nicht benötigt!
end
if pad:cross() and current == 3 then
System.Quit() --Beendet das Programm
end
So der letzte Teil unseres Codes!
screen.waitVblankStart()
screen.flip()
oldpad = pad
end
Fassen wir nocheinmal zusammen:
--Mainmenu--
Bildname = Image.load("BILD.jpg")
--Colors
white = Color.new(255,255,255)
black = Color.new(0,0,0)
red = Color.new(255,0,0)
green = Color.new(0,255,0)
blue = Color.new(0,0,255)
light_blue = Color.new(0,180,255)
orange = Color.new(235,115,0)
yellow = Color.new(255,255,0)
gray = Color.new(160,160,160)
--Background
current = 1
while true do
pad =Controls.read()
screen:clear()
screen:blit(0,0,Bildname)
if current == 1 then
screen:clear()
screen:blit(0,0,Bildname)
screen:print(10,30,"Lua Menue TuT by D!S",green)
screen:print(10,40,":)",black)
screen:print(10,50,"Beenden",black)
end
if current == 2 then
screen:clear()
screen:blit(0,0,Bildname)
screen:print(10,30,"Lua Menue TuT by D!S",black)
screen:print(10,40,":)",green)
screen:print(10,50,"Beenden",black)
end
if current == 3 then
screen:clear()
screen:blit(0,0,Bildname)
screen:print(10,30,"Lua Menue TuT by D!S",black)
screen:print(10,40,":)",black)
screen:print(10,50,"Beenden",green)
end
if pad:up() and oldpad:up() ~= pad:up() then
current = current - 1
end
if pad:down() and oldpad:down() ~= pad:down() then
current = current + 1
end
if current == 4 then
current = 1
end
if current == 0 then
current = 3
end
if pad:cross() and current == 3 then
System.Quit()
end
screen.waitVblankStart()
screen.flip() --Bufferwechsel
oldpad = pad
end
Nun müsst ihr nur noch euren Code als Script.lua in einen neuen Ordner in ms0:/PSP/GAME speichern zusammen mit der EBOOT.pbp des Luaplayer und eurem Hintergrundbild ! Und bitte nicht nur kopieren sondern auch lesen!!!
By D!S
PS: Keine Erlaubnis zum kopieren!!!
Mein UMD Ripper TuT