【发布时间】:2015-01-23 08:09:10
【问题描述】:
我有一个在 SDL(简单直接媒体层)上运行的应用程序。我已将其移植到 SDL2。但是移植后,joystick(SDL_PollEvent) 只是捕获了joysticks 按钮的释放事件。 在 SDL2 中是否有任何错误或捕捉新闻事件的任何设置?
【问题讨论】:
我有一个在 SDL(简单直接媒体层)上运行的应用程序。我已将其移植到 SDL2。但是移植后,joystick(SDL_PollEvent) 只是捕获了joysticks 按钮的释放事件。 在 SDL2 中是否有任何错误或捕捉新闻事件的任何设置?
【问题讨论】:
我也有一个循环和开关语句。我只能通过这个循环获得操纵杆按钮的释放事件。
几秒钟前我找到了答案。如果我在 SDL_Init 语句之前调用 SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS,"1") ,摇杆按钮获取按下和释放事件,否则轮询无法捕获按下事件。
【讨论】:
您可以通过使用 switch 语句来实现这一点,例如:
while( SDL_PollEvent( &event ) )
{
switch( event.type )
{
case SDL_KEYDOWN:
printf( "Key pressed" );
break;
default:
break;
}
}
我看不出有什么特别的改变。
此外,删除此功能也没有任何意义,所以我猜你可能做错了什么。
【讨论】: