From 9748e4f7da1765f54854f6e38b3fb04aed98a414 Mon Sep 17 00:00:00 2001 From: administrator Date: Wed, 14 Feb 2024 22:14:37 +0100 Subject: [PATCH] Added text_input_handler (prototype) --- modules/Labels.py | 3 --- pygame-test.py | 25 ++++++++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/modules/Labels.py b/modules/Labels.py index e29532a..ca2d1f8 100644 --- a/modules/Labels.py +++ b/modules/Labels.py @@ -22,7 +22,4 @@ class Label: class Input_Label(Label): def __init__(self, is_rect=False, pos=tuple, size=tuple, mainsurface=pygame.Surface) -> None: super().__init__(is_rect, pos, size, mainsurface) - - - \ No newline at end of file diff --git a/pygame-test.py b/pygame-test.py index bcf10b9..87e6859 100644 --- a/pygame-test.py +++ b/pygame-test.py @@ -35,6 +35,7 @@ my_font3 = pygame.font.SysFont('times new roman', 46) surface_text_noplayer = fonts["font2"].render("Es existiert noch kein Spieler", True, SCHWARZ) surface_text_inputplayername = fonts["font1"].render("Bitte gib einen Namen ein: ", True, SCHWARZ) +labels = [] active = True @@ -54,6 +55,9 @@ def apply_name(input): print("Es existiert bereits ein Spieler mit diesem Namen!") print(F"Hallo {User.getusername()}, dein letztes Spiel war am: {User.getlastlogin()} mit einem Highscore von: {User.gethighscore()}") + +def get_text_input(dest=str): + return dest surface_menu = pygame.Surface((400, 500)) @@ -72,8 +76,9 @@ def percent_from_screen(base:int, percent:int) -> int: game = Game.Game() User = User.User() -input_label1 = Label.Input_Label(True, (50,50), (100,25), PLAYGROUND) +input_label1 = Label.Input_Label(True, (50,50), (100,25), PLAYGROUND) +labels.append(input_label1) player = Player("Player", PLAYGROUND, PLAYGROUND.get_size(), 100, 100, size=40) @@ -105,7 +110,8 @@ counter = 0 spawn_fruit = True game_started = False -text = "" +text_input_activate = True +text_input_buffer = str() game.change_state("menu") @@ -113,7 +119,7 @@ while active == True: MAINSCREEN.fill((55,148,38)) PLAYGROUND.fill((244,244,244)) for event in pygame.event.get(): - print(event) + #print(event) if (event.type == pygame.QUIT): print("Programm wird geschlossen!") #print(spawned_entities, end="\n") @@ -137,17 +143,22 @@ while active == True: if(player.get_playermovedirection()["right"] != True): player.change_direction("left") + if(text_input_activate == True): + if(event.type == pygame.KEYDOWN): + text_input_buffer += event.unicode + if(event.key == pygame.K_BACKSPACE): + text_input_buffer = text_input_buffer[:-2] + + print(text_input_buffer) + if(game.get_state("menu")): pass - """if(event.type == pygame.KEYDOWN): - print(event.unicode) - text += event.unicode""" text_surface_score = my_font.render('Score: '+str(player.get_player_score()), True, (0, 0, 0)) text_surface_player = my_font.render("Player: " + User.getusername(), True, SCHWARZ, None) text_test = my_font.render("Test", True, SCHWARZ, None) - text_out = my_font.render(text, True, SCHWARZ, None) + text_out = my_font.render(text_input_buffer, True, SCHWARZ, None) #input_label1.draw()