|
-
- import time
- import pygame
- from pygame.locals import *
-
- class Application:
- def __init__(self, width=640, height=480):
- self._running = False
- self._init = False
- self._resolution = width, height
- self.lastFrameTime = 0
-
- def init(self):
- pygame.init()
- self._display_surface = pygame.display.set_mode(self._resolution, pygame.HWSURFACE | pygame.DOUBLEBUF)
- self._init = True
-
- def on_event(self, event):
- if event.type == pygame.QUIT:
- self._running = False
-
- def on_cleanup(self):
- pygame.quit()
-
- def execute(self):
- # We want to automatically exit if app is already running or if app hasn't yet been init.
- if self._running or not self._init:
- return False
- self._running = True
-
- while self._running:
- # Calculate delta time since last frame.
- currentTime = time.time()
- dt = 0
- if self.lastFrameTime != 0:
- dt = currentTime - self.lastFrameTime
- self.lastFrameTime = currentTime
-
- for event in pygame.event.get():
- self.on_event(event)
- self.on_cleanup()
|