Форум сайта python.su
Собственно нужно сделать часы для двух игроков, каждому дать по пять минут и поочереди ставить на паузу каждому игроку, по окончании указананного периода нужно вызвать колбек
Вот это кажется подходящим кодом, но непонятно можно ли ставить на паузу, по моему у него только cancel() который тупо прибивает таймер и все.
from threading import Timer
import time
def timeout():
print "Game over"
t = Timer(20 * 60, timeout)
t.start()
Отредактировано in (Сен. 28, 2014 01:56:27)
Офлайн
in
Тебе в раздел новичков, это раз.
Научись оформлять сообщение и формулировать вопрос, это два.
Офлайн
Хорошо, учту
Офлайн
in
Отнимай от переменной нужное значение.
Офлайн
http://odiszapc.ru/2012/03/10/python-waitable-timer/
нашел такой вариант, буду импортировать из-за возможности pause/resume
Отредактировано in (Сен. 28, 2014 02:02:31)
Офлайн
from threading import Timer import time class RenewableTimer(): def __init__(self, timeout, callback): self.timeout = timeout self.callback = callback self.timer = Timer(timeout, callback) def cancel(self): self.timer.cancel() def start(self): self.start_time = time.time() self.timer.start() def pause(self): self.cancel_time = time.time() self.timer.cancel() return self.get_actual_time() def resume(self): self.timeout = self.get_actual_time() self.timer = Timer(self.timeout, self.callback) self.start_time = time.time() self.timer.start() return self.timeout def get_actual_time (self): return self.timeout - (self.cancel_time - self.start_time)
Офлайн