Back to menu by pressing space button
This commit is contained in:
parent
7e92086601
commit
259bde81a4
|
@ -1,6 +1,7 @@
|
||||||
import sys
|
import sys
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
from .display.display import Display
|
||||||
from .display.mapdisplay import MapDisplay
|
from .display.mapdisplay import MapDisplay
|
||||||
from .display.menudisplay import MenuDisplay
|
from .display.menudisplay import MenuDisplay
|
||||||
from .display.texturepack import TexturePack
|
from .display.texturepack import TexturePack
|
||||||
|
@ -24,9 +25,16 @@ class KeyValues(Enum):
|
||||||
LEFT = auto()
|
LEFT = auto()
|
||||||
RIGHT = auto()
|
RIGHT = auto()
|
||||||
ENTER = auto()
|
ENTER = auto()
|
||||||
|
SPACE = auto()
|
||||||
|
|
||||||
|
|
||||||
class Game:
|
class Game:
|
||||||
|
map: Map
|
||||||
|
player: Player
|
||||||
|
menu_display: MenuDisplay
|
||||||
|
map_display: MapDisplay
|
||||||
|
current_display: Display
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.state = GameMode.MAINMENU
|
self.state = GameMode.MAINMENU
|
||||||
self.main_menu = menus.MainMenu()
|
self.main_menu = menus.MainMenu()
|
||||||
|
@ -36,13 +44,13 @@ class Game:
|
||||||
|
|
||||||
def new_game(self, screen: Any) -> None:
|
def new_game(self, screen: Any) -> None:
|
||||||
# TODO generate a new map procedurally
|
# TODO generate a new map procedurally
|
||||||
self.m = Map.load("example_map.txt")
|
self.map = Map.load("example_map.txt")
|
||||||
self.player = Player()
|
self.player = Player()
|
||||||
self.player.move(1, 6)
|
self.player.move(1, 6)
|
||||||
self.m.add_entity(self.player)
|
self.map.add_entity(self.player)
|
||||||
self.menu_display = MenuDisplay(screen, self.main_menu, 0, 0)
|
self.menu_display = MenuDisplay(screen, self.main_menu, 0, 0)
|
||||||
self.map_display = MapDisplay(
|
self.map_display = MapDisplay(
|
||||||
screen, self.m, self.player,
|
screen, self.map, self.player,
|
||||||
TexturePack.get_pack(self.settings.TEXTURE_PACK))
|
TexturePack.get_pack(self.settings.TEXTURE_PACK))
|
||||||
self.current_display = self.menu_display
|
self.current_display = self.menu_display
|
||||||
|
|
||||||
|
@ -75,29 +83,47 @@ class Game:
|
||||||
return KeyValues.UP
|
return KeyValues.UP
|
||||||
elif key == self.settings.KEY_ENTER:
|
elif key == self.settings.KEY_ENTER:
|
||||||
return KeyValues.ENTER
|
return KeyValues.ENTER
|
||||||
|
elif key == ' ':
|
||||||
|
return KeyValues.SPACE
|
||||||
|
|
||||||
def handle_key_pressed(self, key: KeyValues) -> None:
|
def handle_key_pressed(self, key: KeyValues) -> None:
|
||||||
if self.state == GameMode.PLAY:
|
if self.state == GameMode.PLAY:
|
||||||
if key == KeyValues.UP:
|
self.handle_key_pressed_play(key)
|
||||||
self.player.move_up()
|
elif self.state == GameMode.MAINMENU:
|
||||||
if key == KeyValues.DOWN:
|
self.handle_key_pressed_main_menu(key)
|
||||||
self.player.move_down()
|
elif self.state == GameMode.SETTINGS:
|
||||||
if key == KeyValues.LEFT:
|
self.handle_key_pressed_settings(key)
|
||||||
self.player.move_left()
|
|
||||||
if key == KeyValues.RIGHT:
|
|
||||||
self.player.move_right()
|
|
||||||
if self.state == GameMode.MAINMENU:
|
|
||||||
if key == KeyValues.DOWN:
|
|
||||||
self.main_menu.go_down()
|
|
||||||
if key == KeyValues.UP:
|
|
||||||
self.main_menu.go_up()
|
|
||||||
if key == KeyValues.ENTER:
|
|
||||||
option = self.main_menu.validate()
|
|
||||||
if option == menus.MainMenuValues.START:
|
|
||||||
self.state = GameMode.PLAY
|
|
||||||
self.current_display = self.map_display
|
|
||||||
elif option == menus.MainMenuValues.SETTINGS:
|
|
||||||
self.state = GameMode.SETTINGS
|
|
||||||
elif option == menus.MainMenuValues.EXIT:
|
|
||||||
sys.exit(0)
|
|
||||||
self.current_display.refresh()
|
self.current_display.refresh()
|
||||||
|
|
||||||
|
def handle_key_pressed_play(self, key: KeyValues) -> None:
|
||||||
|
if key == KeyValues.UP:
|
||||||
|
self.player.move_up()
|
||||||
|
elif key == KeyValues.DOWN:
|
||||||
|
self.player.move_down()
|
||||||
|
elif key == KeyValues.LEFT:
|
||||||
|
self.player.move_left()
|
||||||
|
elif key == KeyValues.RIGHT:
|
||||||
|
self.player.move_right()
|
||||||
|
elif key == KeyValues.SPACE:
|
||||||
|
self.state = GameMode.MAINMENU
|
||||||
|
self.current_display = self.menu_display
|
||||||
|
|
||||||
|
def handle_key_pressed_main_menu(self, key: KeyValues) -> None:
|
||||||
|
if key == KeyValues.DOWN:
|
||||||
|
self.main_menu.go_down()
|
||||||
|
if key == KeyValues.UP:
|
||||||
|
self.main_menu.go_up()
|
||||||
|
if key == KeyValues.ENTER:
|
||||||
|
option = self.main_menu.validate()
|
||||||
|
if option == menus.MainMenuValues.START:
|
||||||
|
self.state = GameMode.PLAY
|
||||||
|
self.current_display = self.map_display
|
||||||
|
elif option == menus.MainMenuValues.SETTINGS:
|
||||||
|
self.state = GameMode.SETTINGS
|
||||||
|
elif option == menus.MainMenuValues.EXIT:
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
def handle_key_pressed_settings(self, key: KeyValues) -> None:
|
||||||
|
if key == KeyValues.SPACE:
|
||||||
|
self.state = GameMode.MAINMENU
|
||||||
|
self.current_display = self.menu_display
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from enum import Enum, auto
|
from enum import Enum
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue