I solved this with this solution. If anyone wants, here it is.
Thanks for all for the replies
import direct.directbase.DirectStart
import time
from direct.showbase import DirectObject
from direct.gui.DirectGui import *
from pandac.PandaModules import *
from direct.task import Task
from direct.interval.FunctionInterval import Wait
class Timer(DirectObject.DirectObject):
def __init__(self):
self.timeVal = 0
self.Text = DirectLabel()
self.Text['text'] = "Alex"
self.Text['text_fg'] = (1,1,1,1)
self.Text['text_scale'] = (0.07, 0.07)
self.Text['text_pos'] = (1.27, -0.57, 0.0)
self.Text['text_font'] = self.TimerFont = self.CreateTimerFont()
self.Text.reparentTo(aspect2d)
def CreateTimerFont(self):
return loader.loadFont('FABIAN.TTF')
def SetTimerValue(self, timeVal):
self.timeVal = timeVal
def StartTimer(self):
self.theTime = time.time()
taskMgr.add(self.DecreaseTimer, "DecreaseTimer")
def DecreaseTimer(self, task):
timer = time.time()
if(int(self.theTime + 0.6) < int(timer)):
self.theTime = time.time()
timeMin = str(int(self.timeVal/60))
timeSec = str(int(self.timeVal % 60))
if(len(str(timeMin)) < 2): timeMin = str('0' + timeMin)
if(len(str(timeSec)) < 2): timeSec = str('0' + timeSec)
self.Text['text'] = str(timeMin+':'+timeSec)
self.timeVal -= 1
if(self.timeVal <= -2):
self.Text['text'] = '00:00'
return Task.done
return Task.cont