我正在使用SDL,如何发送虚拟键盘事件?

4

我正在尝试使用sdl(simple directmedia layer)制作一个将游戏手柄映射到键盘的工具。

我可以轻松地找到我按下了哪个游戏手柄按钮,但是似乎无法模拟键盘按键。


你需要一个SDL方案还是Mac OS X方案? - user557219
2个回答

1

我认为你无法“伪造”按键,但是你可以声明一个布尔值数组,其中包含特定按键是否被按下(你可以使数组足够大以容纳每个键盘键,例如,“A”键可以引用数组中的第65个元素)。

将数组的所有元素初始化为false。然后当按下一个键时,将数组中相应的元素设置为true,释放时将其设置为false。然后要将游戏手柄按钮映射到键盘键,你只需要使特定的游戏手柄按钮被按下/释放时,在数组中更改一个对应于你想要映射按钮的键盘键的元素。然后你需要编辑你的代码,从数组中获取输入而不是直接从SDL事件中获取。

希望这能帮到你!


1

这是错误的,那不是它的用途。如果您稍后调用SDL_PollEvent,则SDL本身将拾取键盘事件,但操作系统不会看到它们。据我所知,您无法使用SDL做出问题提问者正在尝试做的事情。 - Jack M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接