【发布时间】:2016-01-23 02:41:24
【问题描述】:
我有一段代码包含以下函数:
void Keyboard(int key)
{
switch (key) {
case GLFW_KEY_A: m_controlState |= TDC_LEFT; break;
case GLFW_KEY_D: m_controlState |= TDC_RIGHT; break;
case GLFW_KEY_W: m_controlState |= TDC_UP; break;
case GLFW_KEY_S: m_controlState |= TDC_DOWN; break;
default: Test::Keyboard(key);
}
}
void KeyboardUp( int key)
{
switch (key) {
case GLFW_KEY_A: m_controlState &= ~TDC_LEFT; break;
case GLFW_KEY_D: m_controlState &= ~TDC_RIGHT; break;
case GLFW_KEY_W: m_controlState &= ~TDC_UP; break;
case GLFW_KEY_S: m_controlState &= ~TDC_DOWN; break;
default: Test::Keyboard(key);
}
}
我知道开关盒是什么,但我不明白这些部分的作用。
m_controlState |= TDC_LEFT
m_controlState &= ~TDC_LEFT
m_controlState 是一个整数。 GFLW_KEY 也指一个 int 值。
有人能解释一下这些部分的作用吗?一个带有输入值和结果的例子会很好。
不等于链接的问题,因为我也问过 &=
【问题讨论】:
-
@twin 他们只给它一个名字,而不是一个解释。
标签: c++ bit-manipulation box2d bitwise-operators