if( ev.type == ALLEGRO_EVENT_TIMER)
这是事件循环中的语句,用于检查传入事件是否为计时器事件。
但是所有的计时器都会产生同样的事件,那么你如何让多个计时器同时进行呢?你如何区分它们?
该活动是一个联盟。查看所有属性here。
你想要ev.timer.source
(或ev.any.source
)。
这是一个有效的例子,假设你有两个ALLEGRO_TIMER
s(timer_one
,timer_two
):
要响应每个计时器:
if(ev.timer.source == timer_one) { //Timer one listener
//Code...
}
if(ev.timer.source == timer_two) { //Timer two listener
//Code...
}
我最长时间遇到这个问题,我发现我忘了在更新中加入al_start_timer(alTimer);
。愚蠢的错误,但如果你忘记它可能会花费你一些时间。