В основном цикле получаешь время, сравниваешь его с предыдущим значением, и если оно изменилось например на 60мс, то увеличиваешь переменную.
time.sleep(60) - очень плохая идея. При высокой нагрузке будут лаги, потому как каждый момент цикла мы засыпаем на 60мс. Если у нас просчёт всего и отрисовка займёт 10мс, то одна итерация будет 10+60=70мс.
Ещё нормально. Если обсчёт и отрисовка займёт 100мс, то 160мс будет заметно пользователю.
Засыпать надо с умом. Определяешь сколько времени у тебя будет проходить одна итерация (я когда писал то взял время 30мс). Запоминаешь время начала итерации (т.е. в начале цикла), в конце цикла снова получаешь время. Вычисляешь разницу, и отнимаешь её от того время которое взял. Засыпаешь на это время:
import time
frame = 30 # время выполнения одного прохода (итерации) цикла
update_data_time = 900 # Время за которое увеличивается переменная
while True:
start = time.clock() # время начала выполнения
что_то_делаем()
if data_time<=0: # Пора обновлять переменную?
data_time = update_data_time # сбрасывает флаг обновления
data += 1 # увеличиваем переменную
else: # не пора
data_time -= frame # уменьшаем флаг обновления
end = time.clock() # время окончания выполнения
delta = end-start # вычисляем время выполнения фрейма
time.sleep(frame-delta) #спим
Хотя это не самый лучший способ, просто наглядный. И скорее всего в библиотеки которую ты используешь для написания есть функционал и для того и для другого.