2

我正在使用 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:并且我按下 w 它也不会打印任何东西。

PS:显然我的 w 键没有坏,否则我很难写下这篇文章。

w有什么问题?

4

2 回答 2

0

这可能取决于您使用的键盘类型,实际上您的 W 和 Z 键可能会根据您的键盘布局而颠倒。我建议你试试 ALT+SHIFT。

于 2013-03-27T20:01:42.627 回答
0

Do not use SDLK_w for this as it gives you whatever key actually gives you a W letter, whereas what you want is the key that you'd expect at the W position regardless of the layout, you do this by using scancodes, in this case SDL_SCANCODE_W.

于 2018-11-23T19:38:48.947 回答