代码初始化
This commit is contained in:
1 parent
8160eca074
commit
dffebce01d
43 files changed
+6383
No files matched your search
+68
@@ -0,0 +1,68 @@
|
||||
# coding=utf-8
|
||||
from ..ToolsConfig import *
|
||||
|
||||
|
||||
class ResultTimer(object):
|
||||
"""
|
||||
结果定时器, 在返回True时结束循环
|
||||
"""
|
||||
|
||||
def __init__(self, func, delay=0.0, maxTimes=10, *args, **kwargs):
|
||||
"""
|
||||
:param func: 执行函数
|
||||
:param delay: 执行延迟
|
||||
:param maxTimes: 最大执行次数
|
||||
"""
|
||||
self.func = func
|
||||
self.delay = delay
|
||||
self.args = args
|
||||
self.kwargs = kwargs
|
||||
self.maxTimes = maxTimes
|
||||
self.runTimes = 0
|
||||
self.gameComp = serverCompFactory.CreateGame(LevelId) or clientCompFactory.CreateGame(LevelId)
|
||||
|
||||
def __timerFunc__(self):
|
||||
result = self.func(*self.args, **self.kwargs)
|
||||
if not result and self.runTimes < self.maxTimes: self.Start()
|
||||
|
||||
def Start(self):
|
||||
"""
|
||||
开始执行定时器
|
||||
:return:
|
||||
"""
|
||||
self.gameComp.AddTimer(self.delay, self.__timerFunc__)
|
||||
self.runTimes += 1
|
||||
|
||||
|
||||
class TimesTimer(object):
|
||||
"""
|
||||
次数定时器
|
||||
"""
|
||||
|
||||
def __init__(self, times, func, delay=0.0, *args, **kwargs):
|
||||
"""
|
||||
:param times: 循环次数
|
||||
:param func: 执行函数
|
||||
:param delay: 执行延迟
|
||||
"""
|
||||
self.func = func
|
||||
self.delay = delay
|
||||
self.times = times
|
||||
self.args = args
|
||||
self.kwargs = kwargs
|
||||
self.gameComp = serverCompFactory.CreateGame(LevelId) or clientCompFactory.CreateGame(LevelId)
|
||||
|
||||
def __func(self, *args, **kwargs):
|
||||
self.times -= 1
|
||||
self.func(*args, **kwargs)
|
||||
if self.times >= 0:
|
||||
self.gameComp.AddTimer(self.delay, self.__func, *self.args, **self.kwargs)
|
||||
|
||||
def Start(self):
|
||||
"""
|
||||
开始执行定时器
|
||||
:return:
|
||||
"""
|
||||
if self.times > 0:
|
||||
self.times -= 1
|
||||
self.gameComp.AddTimer(self.delay, self.__func, *self.args, **self.kwargs)
|
||||
Reference in new issue
Block a user