Jump to content
  • Advertisement
Sign in to follow this  
Oni Sephiroth

GetKeyState() problem

This topic is 2908 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm having some trouble getting GetKeyState() to work properly. I need it to detect letters and numbers, which it's not doing. It detects the enter key, caps lock, shift, tab, etc but nothing for letters and numbers. Here's what I'm doing..

void HVSTInput::CkeyboardTrigger::pollKeys()
{
for (int i = 0; i < 128; i++)
{
_keyboard->setKeyState();
}
}


First there's this, which runs from 0 to 127, checking 128 different "keys."

void HVSTInput::CKey::setKeyState()
{
_previousState = _currentState;
_currentState = GetKeyState(_key);
}


Then this just sets the state of the key using GetKeyState, where _key == i from the loop in pollKeys() method. Now I've looked on MSDN which says to use the ascii value for letters and numbers, which is what I thought I was doing here. Yet, only the keys that I mentioned above are actually triggering.

Share this post


Link to post
Share on other sites
Advertisement
I threw a breakpoint in where I'm actually checking the state of the key. It doesn't break when I press a letter key, but it does for others. I'll look into GetKeyboardState()

Share this post


Link to post
Share on other sites
For numbers make sure you are checking for '9' instead of 9

For letters, if you have been trying lower case, try upper case. If you have been trying upper case try lowercase.

Also there might be some good info here for you (:

http://www.gamedev.net/community/forums/topic.asp?topic_id=24296

Share this post


Link to post
Share on other sites
The loop should cover all of those. The numbers have ASCII values 48 to 57. I suggest a breakpoint in CKey::setKeyState() to see if that triggers when you press a number key. Or some good old-fashioned printf debugging.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!