Game Development Reference
In-Depth Information
Dictionary<Keys, KeyState> _keyStates = new Dictionary<Keys,
KeyState>();
public Keyboard(Control openGLControl)
{
_openGLControl = openGLControl;
_openGLControl.KeyDown += new KeyEventHandler(OnKeyDown);
_openGLControl.KeyUp += new KeyEventHandler(OnKeyUp);
_openGLControl.KeyPress += new KeyPressEventHandler(OnKeyPress);
}
void OnKeyPress(object sender, KeyPressEventArgs e)
{
if (KeyPressEvent != null)
{
KeyPressEvent(sender, e);
}
}
void OnKeyUp(object sender, KeyEventArgs e)
{
EnsureKeyStateExists(e.KeyCode);
_keyStates[e.KeyCode].OnUp();
}
void OnKeyDown(object sender, KeyEventArgs e)
{
EnsureKeyStateExists(e.KeyCode);
_keyStates[e.KeyCode].OnDown();
}
private void EnsureKeyStateExists(Keys key)
{
if (!_keyStates.Keys.Contains(key))
{
_keyStates.Add(key, new KeyState());
}
}
public bool IsKeyPressed(Keys key)
{
EnsureKeyStateExists(key);
Search WWH ::




Custom Search