commit:b1d533b3ba0f8b7d4c064b5ea3f81526e4c79e11
author:Chip Black
committer:Chip Black
date:Fri Jul 11 03:03:26 2008 -0500
parents:402bacb5264a3ada9eafd8f01ee069426edf810e
Changed Engine internals to allow level changing
diff --git a/Engine.py b/Engine.py
line changes: +24/-7
index 9f72e79..78db785
--- a/Engine.py
+++ b/Engine.py
@@ -1,5 +1,5 @@
-import random
 import sys
+import imp
 import pygame
 from pygame.locals import *
 from Sprite import Sprite
@@ -59,16 +59,31 @@ def init(resolution=(640,480)):
 	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)
 
@@ -78,9 +93,11 @@ def engine(eventhandlers, updaters, drawers):
 
 		for update in updaters:
 			update()
+		level.update()
 
 		for draw in drawers:
 			draw()
+		level.draw()
 
 		pygame.display.flip()
 		fpsman.tick(60)