From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- Client/Assets/Scripts/LuaEngine/Core/Timer.cs | 142 ++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 Client/Assets/Scripts/LuaEngine/Core/Timer.cs (limited to 'Client/Assets/Scripts/LuaEngine/Core/Timer.cs') diff --git a/Client/Assets/Scripts/LuaEngine/Core/Timer.cs b/Client/Assets/Scripts/LuaEngine/Core/Timer.cs new file mode 100644 index 00000000..c3aec93f --- /dev/null +++ b/Client/Assets/Scripts/LuaEngine/Core/Timer.cs @@ -0,0 +1,142 @@ +// +// Timer.cs +// Created by huailiang.peng on 2016/03/14 03:19:41 +// + + +namespace LuaCore +{ + + public class Timer + { + //delegate + public delegate void OnTimeUpHandler(int timerSequence); + private OnTimeUpHandler m_timeUpHandler; + + //循环次数( < 0 表示无限循环) + private int m_loop = 1; + + //计时(ms) + private int m_totalTime; + private int m_currentTime; + + //是否完成 + private bool m_isFinished; + + //是否处于运行状态 + private bool m_isRunning; + + //序列号 + private int m_sequence; + + + //-------------------------------------- + /// 构造函数 + //-------------------------------------- + public Timer(int time, int loop, OnTimeUpHandler timeUpHandler, int sequence) + { + if (loop == 0) + { + loop = -1; + } + + m_totalTime = time; + m_loop = loop; + m_timeUpHandler = timeUpHandler; + m_sequence = sequence; + + m_currentTime = 0; + m_isRunning = true; + m_isFinished = false; + } + + + //-------------------------------------- + /// Update + /// @deltaTime + //-------------------------------------- + public void Update(int deltaTime) + { + if (m_isFinished || !m_isRunning) + { + return; + } + + if (m_loop == 0) + { + m_isFinished = true; + } + else + { + m_currentTime += deltaTime; + + if (m_currentTime >= m_totalTime) + { + if (m_timeUpHandler != null) + { + m_timeUpHandler(m_sequence); + } + + m_currentTime = 0; + m_loop--; + } + } + } + + //-------------------------------------- + /// 是否完成 + //-------------------------------------- + public bool IsFinished() + { + return m_isFinished; + } + + public int CurrentTime + { + get { return m_currentTime; } + } + + //-------------------------------------- + /// 暂停 + //-------------------------------------- + public void Pause() + { + m_isRunning = false; + } + + //-------------------------------------- + /// 恢复 + //-------------------------------------- + public void Resume() + { + m_isRunning = true; + } + + //-------------------------------------- + /// 重置 + //-------------------------------------- + public void Reset() + { + m_currentTime = 0; + } + + //-------------------------------------- + /// 检查sequence是否匹配 + //-------------------------------------- + public bool IsSequenceMatched(int sequence) + { + return (m_sequence == sequence); + } + + //-------------------------------------- + /// 检查delegate是否匹配 + //-------------------------------------- + public bool IsDelegateMatched(OnTimeUpHandler timeUpHandler) + { + return (m_timeUpHandler == timeUpHandler); + } + + } + + +} -- cgit v1.1-26-g67d0