二十、藍(lán)圖與C++:Timer計(jì)時(shí)器
Timer(計(jì)時(shí)器)和Delay(延時(shí))是開發(fā)過程中很常用的功能,常用來做一些需要定時(shí)或延遲執(zhí)行的功能.
一.藍(lán)圖中的Timer
1.Delay(延時(shí)節(jié)點(diǎn))
延時(shí)N秒后執(zhí)行邏輯

2.Retriggerable Delay(可觸發(fā)式 延時(shí)節(jié)點(diǎn))
延時(shí)N秒后執(zhí)行邏輯,與Delay不同的是:在倒計(jì)時(shí)結(jié)束前再次出觸發(fā)可以重新倒計(jì)時(shí)

3.Set Time by Event
每N秒執(zhí)行一次自定義事件,可循環(huán)執(zhí)行,可執(zhí)行一次,可暫停/恢復(fù)/清除計(jì)時(shí)器?

Time:延時(shí)時(shí)長(zhǎng)
Looping:是否循環(huán) (不循環(huán)只執(zhí)行一次)

另一種綁定方式:CreateEvent?
綁定自身類的事件

綁定另一個(gè)類的事件


4.SetTimerByFunctionName
這個(gè)FunctionName既可以是事件名稱也可以是函數(shù)名稱



5.TimerHandle?
SetTimerbyEvent和SetTimerbyFunctionName都會(huì)返回一個(gè)TimerHandle結(jié)構(gòu)體,通過該結(jié)構(gòu)體我們可以控制計(jì)時(shí)器的暫停,恢復(fù),清除等


6.實(shí)例演示
在一定范圍內(nèi),每隔一段時(shí)間生成一個(gè)小球,并且能夠自由控制生成/暫停/清除小球的生成



二.C++中的Timer
C++中的SetTimer與藍(lán)圖中的Set Timer By Function Name有點(diǎn)類似,都需要一個(gè)回調(diào)函數(shù),可以通過TimerHandle進(jìn)行對(duì)計(jì)時(shí)器的暫停/恢復(fù)/清除
1.計(jì)時(shí)器句柄與回調(diào)函數(shù)

2.綁定回調(diào)函數(shù)

3.完整代碼
.h文件
.CPP文件
運(yùn)行結(jié)果


參數(shù)說明:
①TimerHandle(InOutHandle):計(jì)時(shí)器句柄,對(duì)應(yīng)下圖返回的TimerHandle,用于暫停,恢復(fù),清除計(jì)時(shí)器

②this(InObj):回調(diào)函數(shù)的所有者,對(duì)應(yīng)下圖

著重說明:參數(shù)② Object和參數(shù)③ 回調(diào)函數(shù)是有從屬關(guān)系的,回調(diào)函數(shù)是Object的成員函數(shù),Object并不是一定要寫成this?
③回調(diào)函數(shù):固定寫法:&類型::函數(shù)名
&ACPP_Timer::TimerFunction

④InRate:對(duì)應(yīng)藍(lán)圖中的延時(shí)時(shí)長(zhǎng)

⑤InbLoop:對(duì)應(yīng)藍(lán)圖中的Looping

4.計(jì)時(shí)器暫停/恢復(fù)/清除
暫停?
恢復(fù)
清除
5.C++復(fù)刻藍(lán)圖案例
完整代碼
.h文件
.CPP文件
編輯器操作


