Keyboard.h
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:1k
源码类别:

游戏

开发平台:

Visual C++

  1. /*******************************************************************
  2.  *         Advanced 3D Game Programming using DirectX 7.0
  3.  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  4.  *   Title: Keyboard.h
  5.  *    Desc: Wrapper of a DirectInput keyboard object
  6.  *          
  7.  * copyright (c) 1999 by Adrian Perez
  8.  * See license.txt for modification and distribution information
  9.  ******************************************************************/
  10. #ifndef _KEYBOARD_H
  11. #define _KEYBOARD_H
  12. #include <memory.h>
  13. #include <dinput.h>
  14. class cInputLayer;
  15. /**
  16.  * Any object that implements this interface can receive input
  17.  * from the keyboard.
  18.  */
  19. struct iKeyboardReceiver
  20. {
  21. virtual void KeyUp( int key ){};
  22. virtual void KeyDown( int key ){};
  23. };
  24. class cKeyboard  
  25. {
  26. LPDIRECTINPUTDEVICE8 m_pDevice; // The Direct Input Device that represents the keyboard
  27. char m_keyState[256];
  28. iKeyboardReceiver* m_pTarget;
  29. public:
  30. void ClearTable()
  31. {
  32. memset( m_keyState, 0, sizeof(char)*256 );
  33. }
  34. cKeyboard( HWND hWnd );
  35. ~cKeyboard();
  36. // Poll to see if a certain key is down
  37. bool Poll( int key );
  38. // Use this to establish a KeyboardReceiver as the current input focus
  39. void SetReceiver( iKeyboardReceiver* pTarget );
  40. eResult Update();
  41. };
  42. #endif //_KEYBOARD_H