因此,我的游戏的主循环基于SDL_WaitEvent类型,在该类型中,它等待用户在尝试发现随机单词时输入新的字母。我的游戏需要这个才能正常工作,但看起来SDL_WaitEvent一直待用,直到用户按下某个东西。问题是我需要我的计时器继续刷新,以便玩家跟踪它,但当游戏到达事件循环时,我的计时器保持闲置状态,我无法找到一个让它保持清爽,任何提示非常感谢。
汇总:
计时器启动:59(秒) 。 。
它只会刷新并显示我按下的时间和时间。
答案 0 :(得分:2)
SDL_AddTimer()
with a callback that uses SDL_PushEvent()
to post a user message to the event queue:
/* Start the timer; the callback below will be executed after the delay */
Uint32 delay = (33 / 10) * 10; /* To round it down to the nearest 10 ms */
SDL_TimerID my_timer_id = SDL_AddTimer(delay, my_callbackfunc, my_callback_param);
...
Uint32 my_callbackfunc(Uint32 interval, void *param)
{
SDL_Event event;
SDL_UserEvent userevent;
/* In this example, our callback pushes an SDL_USEREVENT event
into the queue, and causes our callback to be called again at the
same interval: */
userevent.type = SDL_USEREVENT;
userevent.code = 0;
userevent.data1 = NULL;
userevent.data2 = NULL;
event.type = SDL_USEREVENT;
event.user = userevent;
SDL_PushEvent(&event);
return(interval);
}