My Pygame Game Engine
1from .gui import *
2import time
3
4class Debug:
5 def __init__(self, game) -> None:
6 self.game = game
7
8 self.debug_gui = gui_rect(game)
9 self.debug_gui.set_x_constraint(percentage_constraint(0.55))
10 self.debug_gui.set_y_constraint(percentage_constraint(0.6))
11 self.debug_gui.set_width_constraint(percentage_constraint(0.44))
12 self.debug_gui.set_height_constraint(percentage_constraint(0.38))
13 self.debug_gui.set_border_radius(10)
14 self.debug_gui.set_draw_color(self.game.color_handler.get_rgb('console.background'))
15
16 self.update_time = 0
17 self.render_time = 0
18
19 self.frame_ms = 0
20
21 self.fps_start_time = time.time()
22 self.fps_end_time = 0
23
24 self.latest_readings = 0
25
26 self.fps = 0
27
28 self.render_hud = False
29
30 def send_stats(self, update_time, render_time):
31 self.update_time = update_time * 1000
32 self.render_time = render_time * 1000
33 self.frame_ms = (self.update_time + self.render_time) * 1000
34
35 def update(self):
36 self.debug_gui.update()
37 self.fps_end_time = time.time()
38 self.latest_readings += self.frame_ms
39 if self.fps_end_time - self.fps_start_time > 1:
40 self.fps_start_time = time.time()
41 self.latest_readings = 0
42
43 def render(self):
44 if self.render_hud:
45 self.debug_gui.render()