定时器与随机数
重复定时器、取时间、随机数。
完整清单见「UI 开发」。下面每个接口都带一句用法和一个例子;签名取自
Lib/c/vml_ui.h(权威来源)。
ui_math_rand(int n)
随机数:ui_math_rand(n) → 0..n-1(n ≤ 0 时返回 1,不会崩)。
int n = ui_math_rand(6); /* 0..5 */
int side = ui_math_rand(2); /* 0 或 1 */
ui_time_get_ms(void)
开机以来的毫秒数(自己算帧间隔、做动画用)。
int now = ui_time_get_ms();
ui_timer_kill(int timerId)
停掉一个定时器。 ⚠ 它是重复的 —— 靠「一定会收到 KeyUp」来停是不可靠的,自己要有刹车(换键即接管 / 按了没动两次就停 / 总拍数上限)。
ui_timer_kill(1);
ui_timer_set(int interval_ms, int tag)
起一个重复定时器,每 N 毫秒发一条 VML_MSG_TIMER(msg[1] 是你给的 id)。
ui_timer_set(1, 100); /* 每 100ms 一条,id=1 */