SDL轮询事件用z反转w,反之亦然

时间:2012-12-01 20:50:36

标签: c++ sdl

我正在使用WASD键进行简单的相机移动:

switch (k) {
    case SDLK_w:
        this->up = true;
        break;
    case SDLK_s:
        this->down = true;
        break;
    case SDLK_a:
        this->left = true;
        break;
    case SDLK_d:
        this->right = true;
        break;
    default:
        break;
}

这是非常自我解释的。但是当我按下w时,它根本没有检测到该按钮按下。如果我按ads,则有效。关于它的一个很酷的事情是,如果我只是将SDLK_w更改为任何其他按钮(让我们说SDLK_q)保持相同的确切代码,它就可以了。这不是我如何处理this->up的问题,因为即使我在case SDLK_w:内的屏幕上打印了一些东西而我按下它也不会打印任何内容。

PS:显然我的w键没有被破坏,否则我在写这篇文章时会遇到麻烦。

w有什么问题?

2 个答案:

答案 0 :(得分:0)

这可能取决于您使用的键盘类型,实际上您的W和Z键可能会被反转,具体取决于您的键盘布局。我建议你尝试ALT + SHIFT。

答案 1 :(得分:0)

请勿为此使用SDLK_w,因为它会为您提供实际上会给您W字母的键,而您想要的是无论在哪种布局下都希望在W位置找到的键,您可以使用扫描码来实现,在这种情况下为SDL_SCANCODE_W。