-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
45 lines (33 loc) · 1.17 KB
/
main.py
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
33
34
35
36
37
38
39
40
41
42
43
44
45
import pygame
import assets_manager
import state_machine
from states.menu import Menu
pygame.init()
class Main:
def __init__(self) -> None:
self.screen = pygame.display.set_mode((288, 512))
pygame.display.set_caption("Flappy Bird")
self.asset_manager = assets_manager.AssetsManager()
self.state_machine = state_machine.StateMachine(Menu, self.asset_manager)
self.clock = pygame.Clock()
self.FPS = 60
self.running = True
def run(self) -> None:
delta_time = self.clock.tick(self.FPS) / 1000
while self.running:
events = pygame.event.get()
for event in events:
self.state_machine.process_event(event=event)
if event.type == pygame.QUIT:
self.running = False
continue
running = self.state_machine.update(delta_time=delta_time)
if not running:
self.running = False
self.state_machine.render(screen=self.screen)
pygame.display.flip()
self.clock.tick(self.FPS)
pygame.quit()
if __name__ == "__main__":
main = Main()
main.run()