Changed Engine internals to allow level changing
-import random
import sys
+import imp
import pygame
from pygame.locals import *
from Sprite import Sprite
glEnableClientState(GL_TEXTURE_COORD_ARRAY)
-def engine(eventhandlers, updaters, drawers):
+running = True
+level = None
+eventhandlers = []
+updaters = []
+drawers = []
+
+
+def loadlevel(name):
+ global level
+ fp, pathname, description = imp.find_module(name)
+ level = imp.load_module(name, fp, pathname, description)
+ return level
+
+
+def stop():
+ global running
+ running = False
+
+
+def run():
+ global running
running = True
while running:
events = pygame.event.get()
for e in events:
- if e.type == QUIT:
- running = False
- elif e.type == KEYDOWN:
- if e.key == K_ESCAPE:
- running = False
for h in eventhandlers:
h(e)
for update in updaters:
update()
+ level.update()
for draw in drawers:
draw()
+ level.draw()
pygame.display.flip()
fpsman.tick(60)