c# - Xna's KeyboardState.IsKeyDown() gets stuck once key is pressed -


when running following code in loop (var enterkey = keyboard.getstate().iskeydown(keys.enter);) pushing enter key returns true after i've released key.

any ideas i'm doing wrong?

try checking this:

keyboardstate newstate; public void update(...) {     newstate = keyboard.getstate();     if(newstate.iskeydown(keys.enter))     {         *do want here*     } } 

this way, on each update updating current keyboard state (which keys pressed), can check different key presses in each frame.

edit:
want check single click, instead of asking 2 question, here "bonus" question. code similar:

keyboardstate newstate, oldstate; public void update(...) {     //gets keyboard state single frame     newstate = keyboard.getstate();      //checks if enter down     if(newstate.iskeydown(keys.enter))     {         *do want here*     }      // checks if enter clicked     // if statement asks if in frame, enter button down     // , if enter button not down in last frame     // way, if statement below fire on each click     if(newstate.iskeydown(keys.enter) && oldstate.iskeyup(keys.enter))     {         *do want here*     }      //set old state new state, next frame knows      //what happening in frame before 1     oldstate = newstate; }