Python : Pausable clock

Cette classe hérite de sf.Clock et permet de mettre la minuterie en pause.

class PausableClock

from PySFML import sf
 
class PausableClock(sf.Clock):
 
	def __init__(self):
		self.elapsed_time = 0
		self.pause = False
		sf.Clock.__init__(self)
 
	def Pause(self):
		if self.pause:
			sf.Clock.Reset(self)
			self.pause = False
		else:
			self.elapsed_time = self.elapsed_time + sf.Clock.GetElapsedTime(self)
			self.pause = True
 
	def Reset(self):
		self.elapsed_time = 0
		self.pause = False
		sf.Clock.Reset(self)
 
	def GetElapsedTime(self):
		if self.pause:
			return self.elapsed_time
		else:
			return self.elapsed_time + sf.Clock.GetElapsedTime(self)

Notes

timer.GetElapsedTime() et sf.Clock.GetElapsedTime(timer) :

  • Si timer est une instance de sf.Clock, ces des instructions reviennent au même;
  • Si timer est une instance de PausableClock, la première instruction appelle la méthode qu'on a définie alors que la deuxième appelle celle définie par PySFML.

Améliorations possibles

Vous pouvez facilement adapter cette classe à vos besoins, par exemple faire des méthodes Play et Pause séparées, faire une méthode Stop.

 
fr/sources/py_pausable_clock.txt · Last modified: 2008/07/30 13:45 by remi.k2620
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki