From 9a6d6374f9583e127cb72c88df7a5a64090ca68d Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Mon, 22 Jul 2024 16:08:42 -0400 Subject: [PATCH] Added text along with the speak command. Updated window size. --- __init__.py | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/__init__.py b/__init__.py index f5037b4..94f0c50 100755 --- a/__init__.py +++ b/__init__.py @@ -15,6 +15,7 @@ import pyperclip import random import re import requests +import textwrap import webbrowser # Global variable for speech provider try: @@ -114,15 +115,33 @@ def read_config(readGlobal = False): globalConfig.read_file(configfile) except: pass - -def speak(text, interupt = True): + +def speak(text, interupt=True): if speechProvider == "speechd": - if interupt == True: spd.cancel() + if interupt: spd.cancel() spd.say(text) else: if speechProvider == "accessible_output2": s.speak(text, interrupt=True) - + # Display the text on screen + screen = pygame.display.get_surface() + font = pygame.font.Font(None, 36) + # Wrap the text + maxWidth = screen.get_width() - 40 # Leave a 20-pixel margin on each side + wrappedText = textwrap.wrap(text, width=maxWidth // font.size('A')[0]) + # Render each line + textSurfaces = [font.render(line, True, (255, 255, 255)) for line in wrappedText] + screen.fill((0, 0, 0)) # Clear screen with black + # Calculate total height of text block + totalHeight = sum(surface.get_height() for surface in textSurfaces) + # Start y-position (centered vertically) + currentY = (screen.get_height() - totalHeight) // 2 + # Blit each line of text + for surface in textSurfaces: + textRect = surface.get_rect(center=(screen.get_width() // 2, currentY + surface.get_height() // 2)) + screen.blit(surface, textRect) + currentY += surface.get_height() + pygame.display.flip() def check_for_exit(): for event in pygame.event.get(): @@ -153,7 +172,7 @@ def initialize_gui(gameTitle): # start pygame pygame.init() # start the display (required by the event loop) - pygame.display.set_mode((320, 200)) + pygame.display.set_mode((800, 600)) pygame.display.set_caption(gameTitle) # Set 32 channels for sound by default pygame.mixer.pre_init(44100, -16, 2, 1024)