-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathSceneManager.py
More file actions
32 lines (27 loc) · 978 Bytes
/
SceneManager.py
File metadata and controls
32 lines (27 loc) · 978 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import importlib
class SceneManager():
def __init__(self, game):
self.game = game
self.currentSceneId = ''
self.currentScene = None
def getSceneClassByName(self, name):
try:
name = 'Scene_' + name
sceneClass = getattr(getattr(importlib.import_module('Scenes'), name), name)
except AttributeError:
return None
else:
return sceneClass
def setScene(self, sceneId):
if self.currentScene != None:
self.currentScene.destroy()
sceneClass = self.getSceneClassByName(sceneId)
if sceneClass != None:
self.currentScene = sceneClass(self.game)
self.currentSceneId = sceneId
def update(self, deltaTime, events):
if self.currentScene != None:
self.currentScene.update(deltaTime, events)
def draw(self, screen):
if self.currentScene != None:
self.currentScene.draw(screen)