【发布时间】:2014-01-11 01:14:55
【问题描述】:
这是我用来检查 2D 基本游戏的用户输入的键盘回调方法的定义。但是,我在处理某些同时按键时遇到问题。
例如,如果我按住向右和向上箭头键,播放器会向屏幕右上角移动 45 度。然后,在仍然按住向上和向右键的同时,如果我按空格键(发射弹丸),效果也一样。
但是,如果我按住向左和向下箭头键,播放器会按应有的移动,但是当我按空格键时,我没有收到任何输入响应,因此向下和向左移动时我无法发射弹丸。所有其他运动+火炮组合都起作用,只是向下和向左不起作用……我不知道为什么。有什么想法吗?
if (key == GLFW_KEY_LEFT)
{
GameController::getInstance()->getPlayer()->changeKeyPress(GLFW_KEY_LEFT, action);
}
else if (key == GLFW_KEY_RIGHT)
{
GameController::getInstance()->getPlayer()->changeKeyPress(GLFW_KEY_RIGHT, action);
}
else if (key == GLFW_KEY_UP)
{
GameController::getInstance()->getPlayer()->changeKeyPress(GLFW_KEY_UP, action);
}
else if (key == GLFW_KEY_DOWN)
{
GameController::getInstance()->getPlayer()->changeKeyPress(GLFW_KEY_DOWN, action);
}
else if (key == GLFW_KEY_SPACE)
{
GameController::getInstance()->getPlayer()->changeKeyPress(GLFW_KEY_SPACE, action);
}
else { }
【问题讨论】: