40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import pygame as pg
|
|
import pygame_gui
|
|
from constants import Config
|
|
|
|
class Game():
|
|
def __init__(self, screen, clock, manager):
|
|
self.screen = screen
|
|
self.clock = clock
|
|
self.manager = manager
|
|
self.fps_label = pygame_gui.elements.UILabel(
|
|
relative_rect=pg.Rect((10, 10), (120, 40)),
|
|
text="FPS: 0",
|
|
manager=self.manager
|
|
)
|
|
|
|
def run(self):
|
|
self.running = True
|
|
while self.running:
|
|
self.clock.tick(Config.FPS)
|
|
self.update()
|
|
self.draw()
|
|
return self.running
|
|
|
|
def update(self):
|
|
fps = str(int(self.clock.get_fps()))
|
|
self.fps_label.set_text('fps: ' + fps)
|
|
|
|
for event in pg.event.get():
|
|
if event.type == pg.QUIT:
|
|
self.running = False
|
|
|
|
self.manager.process_events(event)
|
|
|
|
time_delta = self.clock.tick(Config.FPS)/1000.0
|
|
self.manager.update(time_delta)
|
|
|
|
def draw(self):
|
|
self.screen.fill(self.manager.get_theme().get_colour('normal_bg'))
|
|
self.manager.draw_ui(self.screen)
|
|
pg.display.update() |