|
Verfasser |
Nachricht |
ThaProducer
Junior Mitglied
Beiträge: 26
Gruppe: User
Registriert seit: Jan 2010
Status:
Offline
Danke erhalten: 16
|
Menuproblem mit lua
Hi Leute ;),
hab vorn paar Tagen mit lua angefangen und wollte mal versuchen ein einfaches Homebrew zu programmieren.
Erstmal mein Code:
menupunkt1 = Image.load("menupunkt1.png")
menupunkt1high = Image.load("menupunkt1ausgwt.png")
menupunkt2 = Image.load("menupunkt2.png")
menupunkt2high = Image.load("menupunkt2ausgwt.png")
menupunkt3 = Image.load("menupunkt3.png")
menupunkt3high = Image.load("menupunkt3ausgwt.png")
menuback = Image.load("menubg.png")
menupos = 1
farbe = Color.new(255,255,255)
while true do
pad = Controls.read()
screen:blit(0,0,menuback,true)
if pad:down () and menupos < 3 then
menupos = menupos + 1
end
if pad:up () and menupos > 1 then
menupos = menupos - 1
end
if menupos > 3 then
menupos = 1
end
if menupos < 1 then
menupos = 3
end
if menupos == 1 then
screen:blit(150,80,menupunkt1high,true)
else screen:blit(150,80,menupunkt1,true)
end
if menupos == 2 then
screen:blit(150,145,menupunkt2high,true)
else screen:blit(150,145,menupunkt2,true)
end
if menupos == 3 then
screen:blit(150,210,menupunkt3high,true)
else screen:blit(150,210,menupunkt3,true)
end
screen:print(1,1,menupos.." ", farbe)
screen.waitVblankStart()
screen:flip()
end
Nun zu meinem Problem:
Erst habe ich mich gewundert warum er nicht funktioniert dann habe ich mir mal den Wert menupos anzeigen lassen und gemerkt das der Wert beim drücken von pad:up/pad:down rasend schnell ansteigt anstatt immer nur 1 dazu zuzählen...
Würde mich sehr freuen wenn mir ein erfahrener User zeigen könnte wie man dieses Prob. behebt. :D
MfG
|
|
15.01.2010 18:39 |
|
Folgende User bedanken sich: |
|
staj
Halbprofi
Beiträge: 161
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 68
|
RE: Menuproblem mit lua
das liegt daran das daß system rasend schnell die datei durchläuft und wieder von vorne anfängt, und da man nicht nur eine microsekunde klicken kann zählt er es ganz oft.
das ganze lässt sich vielleicht mit einem System.sleep(100) beheben, das lässt das system kurz halten. die 100 sind 0,1 sekunde, den wert kannst du beliebig ändern (1000 sind immer 1 sekunde)
ich hoffe das hilft dir bei deinem problem
|
|
15.01.2010 18:49 |
|
Folgende User bedanken sich: |
|
Lett1
Hurr Durr
Beiträge: 548
Gruppe: User
Registriert seit: Nov 2009
Status:
Offline
Danke erhalten: 597
|
RE: Menuproblem mit lua
nein, du darfst nur dann den wert änderen wenn:
Am anfang:
old = false
Im main:
new = padown ()
if new != old then
blablaba
end
old = new
willkommen im forum.
Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2010 19:13 von Lett1.
|
|
15.01.2010 19:11 |
|
Folgende User bedanken sich: |
|
ThaProducer
Junior Mitglied
Beiträge: 26
Gruppe: User
Registriert seit: Jan 2010
Status:
Offline
Danke erhalten: 16
|
RE: Menuproblem mit lua
Sorry Lett1 wenn ich nochmal störe aber ich verstehe deinen Lösungsweg nicht ganz. Wäre nett wenn du ihn ein bisschen genauer beschreiben könntest
Trotzdem danke für die schnellen Antworten
P.S. mit System.sleep kam bei meinem Luaplayer für win immer ne Fehlermeldung
|
|
15.01.2010 19:38 |
|
Folgende User bedanken sich: |
|
Lett1
Hurr Durr
Beiträge: 548
Gruppe: User
Registriert seit: Nov 2009
Status:
Offline
Danke erhalten: 597
|
RE: Menuproblem mit lua
Wenn du die Taste gedrückt hälst dann sind old und new gleich, wenn du in nur kurz drückst dann nicht und somit wird das in der if anweisung ausgeführt.
|
|
15.01.2010 20:05 |
|
Folgende User bedanken sich: |
|
ThaProducer
Junior Mitglied
Beiträge: 26
Gruppe: User
Registriert seit: Jan 2010
Status:
Offline
Danke erhalten: 16
|
RE: Menuproblem mit lua
Klingt etz warscheinlich echt beschränkt aber könntest du mir als Beispiel des mal in meinen code einbauen...
Ich bekomm des einfach nicht hin :]
|
|
15.01.2010 20:33 |
|
Folgende User bedanken sich: |
|
Lett1
Hurr Durr
Beiträge: 548
Gruppe: User
Registriert seit: Nov 2009
Status:
Offline
Danke erhalten: 597
|
RE: Menuproblem mit lua
menupunkt1 = Image.load("menupunkt1.png")
menupunkt1high = Image.load("menupunkt1ausgwt.png")
menupunkt2 = Image.load("menupunkt2.png")
menupunkt2high = Image.load("menupunkt2ausgwt.png")
menupunkt3 = Image.load("menupunkt3.png")
menupunkt3high = Image.load("menupunkt3ausgwt.png")
menuback = Image.load("menubg.png")
menupos = 1
farbe = Color.new(255,255,255)
while true do
screen:blit(0,0,menuback,true)
function readControls()
pad = Controls.read()
if pad ~= prevPad then
if pad:down () and menupos < 3 then
menupos = menupos + 1
end
if pad:up () and menupos > 1 then
menupos = menupos - 1
end
end
prevPad = pad
end
if menupos > 3 then
menupos = 1
end
if menupos < 1 then
menupos = 3
end
if menupos == 1 then
screen:blit(150,80,menupunkt1high,true)
else screen:blit(150,80,menupunkt1,true)
end
if menupos == 2 then
screen:blit(150,145,menupunkt2high,true)
else screen:blit(150,145,menupunkt2,true)
end
if menupos == 3 then
screen:blit(150,210,menupunkt3high,true)
else screen:blit(150,210,menupunkt3,true)
end
screen:print(1,1,menupos.." ", farbe)
screen.waitVblankStart()
screen:flip()
end
Müsste gehen, ich programmier allerdings nicht in luaplayer sondern pge also sind syntaxfehler eventuell vorhanden.
|
|
15.01.2010 21:19 |
|
Folgende User bedanken sich: |
|
Camaro8000
Homebrew-Liebhaber
Beiträge: 1.372
Gruppe: User
Registriert seit: Jul 2009
Status:
Offline
Danke erhalten: 491
|
RE: Menuproblem mit lua
Der Luaplayer für Windows ist im allgemeinen viel zu schnell...
...war bei meinem ersten Menü auch so, bei Pong auch.
System.sleep kennt er nicht, weil er 'System' nicht versteht.
Auf der PSP geht wahrscheinlich also alles, wie du es haben willst.
Stolzer Schwalbe-Fahrer
|
|
16.01.2010 11:46 |
|
Folgende User bedanken sich: |
|
pspbricker
Mod a.D.
Beiträge: 3.428
Gruppe: User
Registriert seit: May 2008
Status:
Offline
Danke erhalten: 1641
|
RE: Menuproblem mit lua
Auf der PSP kannst du Screen.WaitVblanStart() für eine kleine Pause benutzen:
Beispiel:
Screen.WaitVblankStart(60)
würde die PSP jetzt für eine Sekunde warten lassen.
Der Weg Lett1 funktioniert nicht da er C Syntax benutzt hat.
In Lua sieht es ungefähr so aus:
oldpad = Controls.read()
while true do
pad = Controls.read()
if pad ~= oldpad then
--hier kommen jetzt deine Tasten abfragen hin
end
oldpad = pad
end
Meine PS3 Games : Warhawk , NFS: Pro Street, Motorstorm ,Midnight Club LA, LittleBigPlanet, GTA4, Uncharted 2, Overlord, Killzone2, PES10, Battlefield ´43, Socom: Confrontation,
Forum Regeln Beachten! KEIN ISO Talk! KEINE Beleidigungen! KEINE illegalen Links!
|
|
16.01.2010 13:23 |
|
Folgende User bedanken sich: |
|
Lett1
Hurr Durr
Beiträge: 548
Gruppe: User
Registriert seit: Nov 2009
Status:
Offline
Danke erhalten: 597
|
RE: Menuproblem mit lua
was is daran c syntax?
Naja deine Methode hab ich ihm auch schon beschrieben, hat er aber nicht verstanden.
|
|
16.01.2010 14:09 |
|
Folgende User bedanken sich: |
|
ThaProducer
Junior Mitglied
Beiträge: 26
Gruppe: User
Registriert seit: Jan 2010
Status:
Offline
Danke erhalten: 16
|
RE: Menuproblem mit lua
Ich habe meinen Code nochmal ziemlich umgeschrieben und mein Prob mit Screen.WaitVblankStart() gelöst.
Danke euch allen für die Hilfe ohne euch hätte es warscheinlich noch länger gedauert^^
|
|
16.01.2010 14:40 |
|
Folgende User bedanken sich: |
|