1 | from ed2d import window |
||
2 | from ed2d import context |
||
3 | from ed2d import sysevents |
||
4 | from ed2d.events import Events |
||
5 | from ed2d import timing |
||
6 | from ed2d.opengl import gl |
||
7 | from ed2d import scenegraph |
||
8 | |||
9 | class GameManager(object): |
||
10 | def __init__(self): |
||
11 | |||
12 | self.width = 800 |
||
13 | self.height = 600 |
||
14 | self.fullscreen = False |
||
15 | self.title = "SceneGraph" |
||
16 | self.running = False |
||
17 | |||
18 | self.fpsTimer = timing.FpsCounter() |
||
19 | self.fpsEstimate = 0 |
||
20 | |||
21 | self.window = window.Window(self.title, self.width, |
||
22 | self.height, window.WindowedMode) |
||
23 | |||
24 | self.sysEvents = sysevents.SystemEvents() |
||
25 | self.context = context.Context(3, 3, 2) |
||
26 | self.context.window = self.window |
||
27 | Events.add_listener(self.process_event) |
||
28 | |||
29 | gl.init() |
||
30 | self.gl_init() |
||
31 | |||
32 | def gl_init(self): |
||
33 | '''Init opengl-using objects.''' |
||
34 | print('MOO') |
||
35 | self.sg = scenegraph.SceneGraph() |
||
36 | listNode = self.sg.establish([]) |
||
37 | print(listNode) |
||
38 | stringNode = self.sg.establish('') |
||
39 | self.sg.establish({}, parent=stringNode) |
||
40 | |||
41 | print(self.sg.root.treeChildren) |
||
42 | |||
43 | def resize(self, width, height): |
||
44 | self.width = width |
||
45 | self.height = height |
||
46 | gl.glViewport(0, 0, self.width, self.height) |
||
47 | |||
48 | def process_event(self, event, data): |
||
49 | if event == 'quit' or event == 'window_close': |
||
50 | self.running = False |
||
51 | elif event == 'resize': |
||
52 | winID, x, y = data |
||
53 | self.resize(x, y) |
||
54 | |||
55 | def render(self): |
||
56 | gl.glClearColor(0.5, 0.5, 0.5, 1.0) |
||
57 | gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT) |
||
58 | self.sg.render() |
||
59 | |||
60 | def update(self): |
||
61 | pass |
||
62 | |||
63 | def exit(self): |
||
64 | pass |
||
65 | |||
66 | View Code Duplication | def do_run(self): |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
67 | ''' Process a single loop ''' |
||
68 | self.sysEvents.process() |
||
69 | self.update() |
||
70 | self.render() |
||
71 | self.window.flip() |
||
72 | self.fpsTimer.tick() |
||
73 | if self.fpsTimer.fpsTime >= 2000: |
||
74 | self.fpsEstimate = self.fpsTimer.get_fps() |
||
75 | print("{:.2f} fps".format(self.fpsEstimate)) |
||
76 | |||
77 | def run(self): |
||
78 | ''' Called from launcher doesnt exit until the game is quit ''' |
||
79 | self.running = True |
||
80 | while self.running: |
||
81 | self.do_run() |
||
82 | self.exit() |
||
83 |