Added the GUI system.
This commit is contained in:
parent
5b44dd7e30
commit
ec6bbf817b
4 changed files with 30 additions and 6 deletions
Binary file not shown.
Before Width: | Height: | Size: 656 B After Width: | Height: | Size: 614 B |
Binary file not shown.
|
@ -4,6 +4,7 @@ import pygame
|
|||
from pygame._sdl2 import Window
|
||||
from dataclasses import dataclass
|
||||
from wobbl_tools.data_file import load_dataclass_json, save_dataclass_json
|
||||
from ui import UI
|
||||
|
||||
|
||||
@dataclass
|
||||
|
@ -28,9 +29,11 @@ class GDPygame:
|
|||
setattr(self.settings, "save", lambda: save_dataclass_json(self.settings, "settings.json"))
|
||||
|
||||
self.fps = self.settings.fps
|
||||
self.ui = UI(self)
|
||||
|
||||
# colors
|
||||
self.gray = (20, 20, 20)
|
||||
self.blue = (10, 10, 140)
|
||||
|
||||
# pygame objects
|
||||
self.clock = pygame.time.Clock()
|
||||
|
@ -58,6 +61,8 @@ class GDPygame:
|
|||
def loop(self):
|
||||
self.screen.fill(self.gray)
|
||||
|
||||
self.ui.draw()
|
||||
|
||||
self.get_events()
|
||||
if not self.running:
|
||||
return
|
||||
|
|
31
ui.py
31
ui.py
|
@ -1,14 +1,33 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
class UI:
|
||||
def __init__(self):
|
||||
def __init__(self, app):
|
||||
self.app = app
|
||||
|
||||
self.main_menu = MainMenu(app)
|
||||
|
||||
self.current_page = "main_menu"
|
||||
|
||||
self.main_menu = Page()
|
||||
def draw(self):
|
||||
page = getattr(self, self.current_page)
|
||||
page.draw()
|
||||
|
||||
def update(self):
|
||||
page = getattr(self, self.current_page)
|
||||
page.update()
|
||||
|
||||
|
||||
class Page:
|
||||
def __init__(self, elements: dict=None):
|
||||
if not elements is None:
|
||||
for name, element in elements.items():
|
||||
setattr(self, name, element)
|
||||
def __init__(self, app):
|
||||
self.app = app
|
||||
|
||||
def draw(self):
|
||||
pass
|
||||
|
||||
def update(self):
|
||||
pass
|
||||
|
||||
|
||||
class MainMenu(Page):
|
||||
def draw(self):
|
||||
self.app.screen.fill(self.app.blue)
|
||||
|
|
Loading…
Reference in a new issue