Permalänk
Medlem

Långsam KeyListner

Hej!

Jag sitter och programmerar ett enkel tennis spel (klassiska pong) i java.
Jag avänder mig av en Playerklass, datorsyrd motståndare, en boll klass och en Game klass som visar upp spelet och som kopplar samman alla delar. game innehåller också main metod.
Jag implementerar keyListner i Playerklassen som lyssnar på vilken knapp jag trycker på och därefter flyttar spelaren utifrån detta. Game är det som lägger till KeyListnern Player.
Mitt problem är att keyListern reagerar inte på så sätt som jag vill. Det tar för lång tid för keyListnern att reagera på att jag hålle in en knapp. T.ex om jag vill gå upp, trycker jag ner uppått pilen. Först reagerar den direkt och rör sig en gång upp, men sedan tar det för lång tid för den att fortsätta röra sig uppåt.
KeyLisner fungerar ju på så sätt vad jag har försått att när man håller inne en knapp anropas keyPressed(KeyEvent e) automatiskt hela tiden. Men från att jag trycker ner knappen och den rör sig en gång, tills den reagerar en gång till är 500ms, som är tok för lång tid. Därefter fortsätter den på ett bra sätt och anropar metoden c:a var 25 ms, som är bra.

Förstår att att det kan vara svårt att förstå vad jag menar, vet inte riktigt hur jag ska förklara det bättre.
Tack på förhand!

/Magnus

Visa signatur

Jag har en grm dator

Permalänk
Medlem

Hej

Du kan sätta en variabel till tex 1 när keypressed(keyevent e) blir kallad. Sedan kan du använda keyReleased(keyevent e) för att sätta den till 0 igen. Sedan är det bara att röra spelaren så länge variabeln är 1

Permalänk

Tack så mycket, att jag inte tänkte på det.
ska nog få det att funka nu.

Permalänk
Medlem

Registrerar inte keyPressed när knappen trycks ner och sedan släpps upp? Du kanske borde lyssna på keyDown istället?