X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=tabakrolletjie%2Fengine.py;h=cdea1608316b5b68c1e4af4eb5856bd21a9be2ad;hb=HEAD;hp=4aac2e8e8bb7297ce86e317e4c8e68e5528f5212;hpb=10966c2b64a9842f30d3372fdea2afccbe7edc87;p=tabakrolletjie.git diff --git a/tabakrolletjie/engine.py b/tabakrolletjie/engine.py index 4aac2e8..cdea160 100644 --- a/tabakrolletjie/engine.py +++ b/tabakrolletjie/engine.py @@ -7,7 +7,8 @@ import pygame.time import pygame.locals as pgl -from .constants import FPS +from .constants import FPS, DRAW_FPS, FONTS, FPS_FRAMES +from .loader import loader from .events import QuitEvent, SceneChangeEvent @@ -26,6 +27,9 @@ class Engine(object): def run(self): clock = pygame.time.Clock() + fpses = [FPS] * FPS_FRAMES + frame = 0 + font = loader.load_font(FONTS['sans'], size=16) while True: events = pygame.event.get() @@ -38,6 +42,16 @@ class Engine(object): else: self._scene.event(ev, self._gamestate) + # Advance time on the world + # Time is assumed to flow perfectly, so no dt parameter for now + self._scene.tick(self._gamestate) self._scene.render(self._screen, self._gamestate) + if DRAW_FPS: + fps = sum(fpses) / FPS_FRAMES + text = font.render("FPS: %.2f" % fps, True, (255, 255, 255)) + self._screen.blit(text, (10, 10), None) pygame.display.flip() - clock.tick(FPS) + fpses[frame] = 1000.0 / clock.tick(FPS) + frame += 1 + if frame >= FPS_FRAMES: + frame = 0