这是问题,我已经编写了一个事件循环来检测按键和松开键的事件。我遇到的问题是,当按键被按下并保持按下时,一个按键按下事件会生成一个按键按下和一个按键松开事件。我正在使用箭头键移动一个对象,然后在释放按键(keyup)时停止移动。任何帮助都将很有帮助。谢谢。 =)
贾斯汀
附言:我想发表代码,但无法使其看起来正确。
print(" SDL_Event event;
SDL_EnableKeyRepeat(0,0);
while(SDL_PollEvent(&event)){
switch(event.type){
case SDL_QUIT:
done = true;
break;
case SDL_KEYDOWN:
switch(event.key.keysym.sym){
case SDLK_ESCAPE:
done = true;
break;
case SDLK_LEFT:
animate_x = -5;
cout << "left press
";
break;
case SDLK_RIGHT:
animate_x = 5;
break;
case SDLK_UP:
animate_y = -5;
break;
case SDLK_DOWN:
animate_y = 5;
break;
default:
break;
}
break; -left out in original
case SDL_KEYUP:
switch(event.key.keysym.sym){
case SDLK_LEFT:
cout << "left up
";
animate_x = 0;
break;
case SDLK_RIGHT:
animate_x = 0;
break;
case SDLK_UP:
animate_y = 0;
break;
case SDLK_DOWN:
animate_y = 0;
break;
default:
break;
}
break; -left out in original
}
}");
在尝试解决如何发布代码时,我注意到在两个案例中遗漏了默认值。代码现在可用。它继续通过案例并执行与队列中匹配的代码。太傻了。谢谢你们的所有帮助。=)