quick :Timer




Timer 实现了一个计时器容器,用于跟踪应用中所有需要计时的事件。

Functions
Timer.new()
创建一个计时器。
 -  timer:addCountdown(eventName, countdown, interval)
添加一个计时器。
 -  timer:removeCountdown(eventName)
删除指定事件名称对应的计时器,并取消这个计时器的所有事件处理函数。
 -  timer:start()
启动计时器容器。
 -  timer:stop()
停止计时器容器。

Functions

Timer.new()

Timer.new()

创建一个计时器。

Returns:

  • Timer 对象

timer:addCountdown()

timer:addCountdown(eventName, countdown, interval)

添加一个计时器。

在计时器倒计时完成前,会按照 interval 参数指定的时间间隔触发 eventName 参数指定的事件。 事件参数则是倒计时还剩余的时间。

在计时器倒计时完成后,同样会触发 eventName 参数指定的事件。此时事件的参数是 0,表示倒计时完成。

因此在事件处理函数中,可以通过事件参数判断倒计时是否已经结束:

local Timer = require("framework.api.Timer")
local appTimer = Timer.new()

-- 响应 CITYHALL_UPGRADE_TIMER 事件
local function onCityHallUpgradeTimer(event)
    if event.countdown > 0 then
        -- 倒计时还未结束,更新用户界面上显示的时间
        ....
    else
        -- 倒计时已经结束,更新用户界面显示升级后的城防大厅
    end
end

-- 注册事件
appTimer:addEventListener("CITYHALL_UPGRADE_TIMER", onCityHallUpgradeTimer)
-- 城防大厅升级需要 3600 秒,每 30 秒更新一次界面显示
appTimer:addCountdown("CITYHALL_UPGRADE_TIMER", 3600, 30)

考虑移动设备的特殊性,计时器可能存在一定误差,所以 interval 参数的最小值是 2 秒。 在界面上需要显示倒计时的地方,应该以“分”为单位。例如显示为“2 小时 23 分”,这样可以避免误差带来的问题。

注意

计时器在倒计时结束并触发事件后,会自动删除。关联到这个计时器的所有事件处理函数也会被取消。

Parameters:

  • eventName: 计时器事件的名称
  • countdown: 倒计时(秒)
  • interval(可选): 检查倒计时的时间间隔,最小为 5 秒,最长为 120 秒,如果未指定则默认为 30 秒

timer:removeCountdown()

timer:removeCountdown(eventName)

删除指定事件名称对应的计时器,并取消这个计时器的所有事件处理函数。

Parameters:

  • eventName: 计时器事件的名称

timer:start()

timer:start()

启动计时器容器。

在开始游戏时调用这个方法,确保所有的计时器事件都正确触发。

timer:stop()

timer:stop()

停止计时器容器。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值