-
wont respond to keyboard up left and space, at the same time
Hello, I have 2 functions for releasing and pressing keys, for the 5 buttons: arrow buttons and space. there are no problems at all when i dont press space, everything works. but when I press space, and then left and up at the same time, the last 2 wont respond. if i press either of them first, and then the other after that, only the last one of them wont respond. strangely, this doesnt happen when i press left and down, right and down, or up and right. only with left and up.
these are the functions:
PHP Code:
protected function keyPressed(e:KeyboardEvent):void
{
if (Boolean(keysDown[e.keyCode]))
{return;}
keysDown[e.keyCode] = true;
switch (e.keyCode)
{
case (LEFT)://arrow-left
kine.setHSpeed(-SPEED);
break;
case (UP)://arrow-up
kine.setVSpeed(-SPEED);
break;
case (RIGHT)://arrow-right
kine.setHSpeed(SPEED);
break;
case (DOWN)://arrow-down
kine.setVSpeed(SPEED);
break;
case (SPACE)://shift
weapon.shoot(x,y);
shootTimer.start();
break;
default:
return;
}
}
and for releasing:
PHP Code:
protected function keyReleased(e:KeyboardEvent):void
{
keysDown[e.keyCode] = false;
switch (e.keyCode)
{
case (LEFT)://arrow-left
//trace("left key released");
if (keysDown[RIGHT])
{
kine.setHSpeed(SPEED);
}
else
{
kine.setHSpeed(0);
}
break;
case (UP)://arrow-up
//trace("up key released");
if (keysDown[DOWN])
{
kine.setVSpeed(SPEED);
}
else
{
kine.setVSpeed(0);
}
break;
case (RIGHT)://arrow-right
//trace("right key released");
if (keysDown[LEFT])
{
kine.setHSpeed(-SPEED);
}
else
{
kine.setHSpeed(0);
}
break;
case (DOWN)://arrow-down
//trace("down key released");
if (keysDown[UP])
{
kine.setVSpeed(-SPEED);
}
else
{
kine.setVSpeed(0);
}
break;
case (SPACE)://shift
shootTimer.reset();
break;
}
}
I cant find the problem atall. have been looking for it quite some time.
Thanks, in advance.
-
The good news: It's not your code that's the problem.
The bad news: You have a cheap keyboard.
-
how many % of the people have this same problem?
and what really is causing this, a mistake in production?
-
It's quite common, especially on the arrow keys. Most keyboards only register three arrow keys at a time, or 4 non-arrows.
Here's a page which explains why it happens:
http://www.dribin.org/dave/keyboard/one_html/
Keyboard manufacturers are too cheap to use a design which handles the issue, because it is quite rare in practice.
-
How do i solve this? use another key than space? I'd rather not.
is it the same key combination with every keyboard?
-
My understanding is that it varies by keyboard model. Some will have different combinations than others. You might try using WASD instead of the arrows, or allowing the user to set their own key mappings.
-
will control work instead of space? or are there problems with this, such as that control and arrow key means a certain operation in the browser? alt maybe? i know shift won't work, since it makes some kine of 7 secs shift key mode blabla popup appear. I'd rather not use wasd, unless it's absolutely neccesairy.
I really prefer arrow keys and space, but i guess thats not gonna work.
-
Any particular combination of 3 or more keys at once could screw up on some keyboards.
-
CasaLib's Key class has worked very well for us in the past:
http://casalib.org/blog/using-the-key-class/
-
Just ran into this problem aswell . Got an expensive Dell laptop, pretty new, top-notch...... but in my game, I can't jump to the left and shoot (up+left+space).... all other directions works, like jumping to the right and shoot (up+right+space). Of course, replacing space (shoot) with any other key works... but meh.... not comfy to shoot with any other key..... guess I have to add some sort of set-your-own-keys in options.
In other words, on this keyboard, space will not work if I hold left and up on the arrow keys.... but ALL other combinations works.
Last edited by Geneve; 05-08-2009 at 06:56 AM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|