📄 keyinput.cpp
字号:
#include "keyinput.h"
#include "engine.h"
// constructor , init keyStatus
CKeyinput::CKeyinput()
{
ResetAll();
}
CKeyinput::~CKeyinput()
{
}
void CKeyinput::ResetAll()
{
m_keysPressed = 0;
m_KeysReleased = 0;
m_KeysDown = 0;
m_KeysUp = 0;
m_KeysHold = 0;
m_KeysState = 0;
MEMSET(m_KeysHoldCnt, 0, sizeof(short)*15);
}
void CKeyinput::HandleKey(AVKType vKey, AEEEvent Code)
{
if(Code == EVT_KEY_PRESS)
{
m_keysPressed |= gkConvert(vKey);
}
else
{
m_KeysReleased |= gkConvert(vKey);
}
}
//update key status every frame, clear temporary status
void CKeyinput::updateKey()
{
//the key was pressed are belong to key down
m_KeysDown = m_keysPressed;
m_KeysUp = m_KeysReleased;
//the key pressed and old key hold but not up belong to key hold
m_KeysHold = (m_keysPressed | m_KeysHold) & (~m_KeysReleased);
for (int i=0; i<15; i++)
{
if (m_KeysHold & (1>>i))
m_KeysHoldCnt[i]++;
else
m_KeysHoldCnt[i]=0;
}
m_keysPressed = 0;
m_KeysReleased = 0;
}
int CKeyinput::gkConvert(int keyCode)
{
switch (keyCode)
{
case AVK_UP:
return gk_UP;
case AVK_DOWN:
return gk_DOWN;
case AVK_LEFT:
return gk_LEFT;
case AVK_RIGHT:
return gk_RIGHT;
case AVK_SELECT:
#ifdef T720
return gk_RSOFT;
#else
return gk_MSOFT;
#endif
case AVK_SOFT1:
return gk_LSOFT;
case AVK_SOFT2:
return gk_RSOFT;
case AVK_0:
return gk_NUM0;
case AVK_1:
return gk_NUM1;
case AVK_2:
return gk_NUM2;
case AVK_3:
return gk_NUM3;
case AVK_4:
return gk_NUM4;
case AVK_5:
return gk_NUM5;
case AVK_6:
return gk_NUM6;
case AVK_7:
return gk_NUM7;
case AVK_8:
return gk_NUM8;
case AVK_9:
return gk_NUM9;
case AVK_STAR:
return gk_STAR;
case AVK_POUND:
return gk_POUND;
case AVK_CLR:
#ifdef T720
return gk_LSOFT;
#else
return gk_BACK;
#endif
case AVK_SEND:
return gk_SEND;
default:
return 0;
}
}
// end file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -