Reworked graphics to make it more modular
This commit is contained in:
@ -2,14 +2,12 @@ import sys
|
||||
from typing import Any
|
||||
|
||||
from .display.display import Display
|
||||
from .display.mapdisplay import MapDisplay
|
||||
from .display.menudisplay import MenuDisplay
|
||||
from .display.texturepack import TexturePack
|
||||
from .entities.player import Player
|
||||
from .interfaces import Map
|
||||
from .settings import Settings
|
||||
from enum import Enum, auto
|
||||
from . import menus
|
||||
from typing import Callable
|
||||
|
||||
|
||||
class GameMode(Enum):
|
||||
@ -31,21 +29,19 @@ class KeyValues(Enum):
|
||||
class Game:
|
||||
map: Map
|
||||
player: Player
|
||||
menu_display: MenuDisplay
|
||||
map_display: MapDisplay
|
||||
display: Display
|
||||
display_refresh: Callable[[], None]
|
||||
|
||||
def __init__(self) -> None:
|
||||
"""
|
||||
Init the game.
|
||||
"""
|
||||
self.state = GameMode.MAINMENU
|
||||
self.state = GameMode.PLAY
|
||||
self.main_menu = menus.MainMenu()
|
||||
self.settings = Settings()
|
||||
self.settings.load_settings()
|
||||
self.settings.write_settings()
|
||||
|
||||
def new_game(self, screen: Any) -> None:
|
||||
def new_game(self) -> None:
|
||||
"""
|
||||
Create a new game on the screen.
|
||||
"""
|
||||
@ -56,8 +52,6 @@ class Game:
|
||||
self.player = Player()
|
||||
self.player.move(1, 6)
|
||||
self.map.add_entity(self.player)
|
||||
self.display = Display(screen, self.map, TexturePack.get_pack(self.settings.TEXTURE_PACK))
|
||||
# self.menu_display = MenuDisplay(screen, self.main_menu, 0, 0)
|
||||
|
||||
@staticmethod
|
||||
def load_game(filename: str) -> None:
|
||||
@ -73,9 +67,10 @@ class Game:
|
||||
while True:
|
||||
screen.clear()
|
||||
screen.refresh()
|
||||
self.display.refresh(self.map, self.player)
|
||||
self.display_refresh()
|
||||
key = screen.getkey()
|
||||
self.handle_key_pressed(self.translate_key(key))
|
||||
self.display_refresh()
|
||||
|
||||
def translate_key(self, key: str) -> KeyValues:
|
||||
"""
|
||||
@ -109,7 +104,7 @@ class Game:
|
||||
self.handle_key_pressed_main_menu(key)
|
||||
elif self.state == GameMode.SETTINGS:
|
||||
self.handle_key_pressed_settings(key)
|
||||
self.display.refresh(self.map, self.player)
|
||||
self.display_refresh()
|
||||
|
||||
def handle_key_pressed_play(self, key: KeyValues) -> None:
|
||||
"""
|
||||
@ -125,7 +120,6 @@ class Game:
|
||||
self.player.move_right()
|
||||
elif key == KeyValues.SPACE:
|
||||
self.state = GameMode.MAINMENU
|
||||
self.display = self.menu_display
|
||||
|
||||
def handle_key_pressed_main_menu(self, key: KeyValues) -> None:
|
||||
"""
|
||||
@ -139,7 +133,6 @@ class Game:
|
||||
option = self.main_menu.validate()
|
||||
if option == menus.MainMenuValues.START:
|
||||
self.state = GameMode.PLAY
|
||||
self.display = self.map_display
|
||||
elif option == menus.MainMenuValues.SETTINGS:
|
||||
self.state = GameMode.SETTINGS
|
||||
elif option == menus.MainMenuValues.EXIT:
|
||||
@ -151,4 +144,3 @@ class Game:
|
||||
"""
|
||||
if key == KeyValues.SPACE:
|
||||
self.state = GameMode.MAINMENU
|
||||
self.display = self.menu_display
|
||||
|
Reference in New Issue
Block a user