EVENT_KEYDOWN und EVENT_KEYREPEAT Verzögerung

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

danielos

Betreff: EVENT_KEYDOWN und EVENT_KEYREPEAT Verzögerung

BeitragMi, Aug 19, 2009 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich bin grad dabei, einen kleines Jump and Run zu programmieren, und bin schon bei einem kleinen Problem:
Bei mir entsteht beim Bewegen der Spielfigur immer eine Zeitverzögerung, sie bewegt sich erst unmiitelbar nach Tastendruck, dann dauert es aber etwa eine halbe Sekunde, bis sie sich weiterbewegt.
Ich habe die Vermutung, dass zunächst EVENT_KEYDOWN ausgelöst wird, und dannach das EVENT_KEYREPEAT, wodurch die Verzögerung entsteht. Ich kann auch falsch liegen, oder ich steh auf dem Schlauch.
Der Code schaut vereinfach prinzipiell so aus:

Code: [AUSKLAPPEN]


Select Pollevent()
    Case EVENT_KEYDOWN, EVENT_KEYREPEAT
         Select EventData()
               Case KEY_RIGHT
                      Player.PositionX:+3
          EndSelect
EndSelect


Dabei entsteht immer die Verzögerung. Mir fällt auch leider keine Lösung ein, wie man das umgehen könnte, oder kann man die Events hier gar nicht benutzen, und muss mit "If Keydown(X) ..." usw. arbeiten ?
Ich bin dankbar für alle Antworten! Wink

MfG Danielos

DaysShadow

BeitragMi, Aug 19, 2009 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Normalerweise nimmt man da KeyHit und KeyDown, so wie du hab ich das noch nie benutzt Wink
Vielleicht wissen die erfahreren aber auch noch mehr.

MfG DaysShadow
Blessed is the mind too small for doubt
 

n-Halbleiter

BeitragMi, Aug 19, 2009 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Nutzt du Windows? Wenn ja, dann denke ich, dass (ich gehe einfach mal vom Namen her davon aus, dass es sich um die Tastendruckwiederholung handelt, doch ich weiß es nicht genau, ich habe kein BMax) es daran liegt, dass Windows immer erst den Tastendruck einmal nimmt und dann nach Verzögerung Tastendrücke akzeptiert. Das lässt sich unter "Systemsteuerung" -> "Tastatur" im Reiter "Geschwindigkeit" einstellen. Das ganze kann man sich vor Augen führen, wenn man mal den Editor öffnet und einen beliebigen Buchstaben eintippt; er wird erst einmal geschrieben, und dann nach Verzögerung oft wiederholt.
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit
Ploing!
Blog

"Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935)
 

danielos

BeitragMi, Aug 19, 2009 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die beiden schnellen Antworten,
so wies aussieht, muss ich das wohl umstellen und mit KeyDown(..) machen... Schade irgendwie, ich mag das System mit den Events...

MfG Danielos


PS: @n-Halbleiter: Vielleicht hast du da Recht, allerdings bringt dann das Umstellen nur mir was, und nicht anderen Spielern... Naja danke für die Antwort jedenfalls Wink

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group