diff --git a/src/main.py b/src/main.py index 4c1c25f..3314c42 100644 --- a/src/main.py +++ b/src/main.py @@ -2,6 +2,7 @@ import pygame import sys from menu import Menu # Menü importieren import settings +from world import World def main(): pygame.init() @@ -9,19 +10,38 @@ def main(): pygame.display.set_caption("The Last Ollie \n A Fred Story") clock = pygame.time.Clock() - # Menü initialisieren menu = Menu(screen) + world = World(screen) + + current_scene = "menu" # oder "world" running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False - menu.handle_event(event) - menu.draw() + if current_scene == "menu": + menu.handle_event(event) + if menu.ready_to_start_game: + menu.ready_to_start_game = False # Reset! + current_scene = "world" + + if current_scene == "world": + result = world.handle_event(event) + if result == "menu": + current_scene = "menu" + menu.input_active = False + menu.show_main_buttons = True + menu.ready_to_start_game = False + + if current_scene == "menu": + menu.draw() + elif current_scene == "world": + world.draw() + pygame.display.flip() - clock.tick(settings.FPS) + clock.tick(60) pygame.quit() sys.exit() diff --git a/src/menu.py b/src/menu.py index 07b3fdc..11c444d 100644 --- a/src/menu.py +++ b/src/menu.py @@ -26,6 +26,7 @@ class Menu: self.input_active = False self.player_name = "" self.show_main_buttons = True + self.ready_to_start_game = False def draw(self): self.screen.fill(MyColors.background) # Hintergrundfarbe @@ -77,12 +78,21 @@ class Menu: self.show_main_buttons = True self.player_name = "" if self.go_button.collidepoint(event.pos): + if self.player_name: # Nur wenn ein Name eingegeben wurde + self.input_active = False + self.show_main_buttons = False + self.ready_to_start_game = True if settings.DEBUG: print(f"Spielstart mit Spielername: {self.player_name}") if event.type == pygame.KEYDOWN and self.input_active: - if event.key == pygame.K_RETURN and settings.DEBUG: - print(f"Name eingegeben: {self.player_name}") + if event.key == pygame.K_RETURN: + if self.player_name: # Nur wenn ein Name eingegeben wurde + self.input_active = False + self.show_main_buttons = False + self.ready_to_start_game = True + if settings.DEBUG: + print(f"Name eingegeben: {self.player_name}") elif event.key == pygame.K_BACKSPACE: self.player_name = self.player_name[:-1] else: diff --git a/src/world.py b/src/world.py new file mode 100644 index 0000000..d4d5cdb --- /dev/null +++ b/src/world.py @@ -0,0 +1,20 @@ +import pygame +import settings + +class World: + def __init__(self, screen): + self.screen = screen + self.background_color = (135, 206, 235) # Himmelblau + self.ground_rect = pygame.Rect(0, 600, 1280, 120) # Boden + + def draw(self): + self.screen.fill(self.background_color) + pygame.draw.rect(self.screen, (124, 252, 0), self.ground_rect) # Grün für Boden + + def handle_event(self, event): + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_ESCAPE: + if settings.DEBUG: + print("ESC-Pressed") + return "menu" + return None \ No newline at end of file