Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (511)
Games in Android Showcase (119)
games submitted by our members
Games in WIP (577)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  KeyListener problems  (Read 734 times)
0 Members and 1 Guest are viewing this topic.
Offline Agro
« Posted 2013-03-14 17:13:02 »

Well, my KeyListener works, but I think its a bit odd how it does work. I just checked, and whenever I press a key, the keyPressed() method is called once, waits a bit, and then it continuously gets called. I know this is normal.

But, I just checked, and as keyPressed is called continuously, keyReleased is called contiuously too. It looks something like this:

keyPressed
--wait for a second--
keyPressed
keyReleased
keyPressed
keyReleased
---

Is that normal that keyReleased is being called? Sometimes, it comes up with problems, like if I am travelling down right in my game, a keyPressed event is skipped, so it no longer travels in a diagonal direction, either down or right. However, this happens randomly.

It only lasts for a very little time, but its very noticeable. Any tips on how to fix this? I think it might have something to do with me being on Ubuntu, and I'm on OpenJDK.

Offline cylab

JGO Ninja


Medals: 52



« Reply #1 - Posted 2013-03-14 17:28:34 »

Unfortunately that is the key-repeat from the OS, so nothing java can do about :/ Afaik, the only way to overcome this issue is to use a lib with native bindings like JInput.

Mathias - I Know What [you] Did Last Summer!
Offline Agro
« Reply #2 - Posted 2013-03-14 17:45:32 »

huh, I guess I'll do that.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline relminator
« Reply #3 - Posted 2013-03-14 22:49:20 »

You could try  key polling like what I did here:

net.phatcode.rel.utils/Keyboard class

http://rel.phatcode.net/junk.php?id=138
Offline Agro
« Reply #4 - Posted 2013-03-14 23:30:56 »

I'll try that, but it still will have the same problem. keyPressed and keyReleased are constantly called(one after eachother), and sometimes the keyPressed event misses a few calls, and the net effect is that the key is released.

I'll see though, and update you if it works Smiley

Offline relminator
« Reply #5 - Posted 2013-03-14 23:42:07 »

I'll try that, but it still will have the same problem. keyPressed and keyReleased are constantly called(one after eachother), and sometimes the keyPressed event misses a few calls, and the net effect is that the key is released.

I'll see though, and update you if it works Smiley

Same problem I had with the callback mechanism of keylisteners.  That's why I poll my input.  It's easier to use too.
Offline Agro
« Reply #6 - Posted 2013-03-15 04:39:53 »

Alright, I'm adding it in right now. Also, wouldn't it be better if you just got an array for having the keyPress array? Isn't it pointless to have a keysReleased array since keyPress and keyRelease both have opposite values(true and false), so you can just call !keysPressed[KEY] to get if it is released?

Offline relminator
« Reply #7 - Posted 2013-03-15 04:46:22 »

You could try that but it won't work with just one array. Hence the scanKeys() method.

Offline Agro
« Reply #8 - Posted 2013-03-15 18:06:31 »

Dang, that helped me alot. Not only am I taking the input, I'm replacing my whole frame control logic. Thanks!

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Longarmx (50 views)
2014-10-17 03:59:02

Norakomi (39 views)
2014-10-16 15:22:06

Norakomi (31 views)
2014-10-16 15:20:20

lcass (36 views)
2014-10-15 16:18:58

TehJavaDev (66 views)
2014-10-14 00:39:48

TehJavaDev (65 views)
2014-10-14 00:35:47

TehJavaDev (56 views)
2014-10-14 00:32:37

BurntPizza (72 views)
2014-10-11 23:24:42

BurntPizza (44 views)
2014-10-11 23:10:45

BurntPizza (84 views)
2014-10-11 22:30:10
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!