En este artículo, discutiremos cómo crear un cuadro de entrada de texto usando PyGame.
Instalación
Antes de inicializar la biblioteca de pygame, debemos instalarla. Esta biblioteca se puede instalar en el sistema utilizando la herramienta pip que proporciona Python para la instalación de la biblioteca. Pygame se puede instalar escribiendo estas líneas en la terminal.
Podemos instalar Pygame usando el comando:
pip install pygame
Pygame se puede utilizar para crear un cuadro de entrada de texto que se explicará paso a paso más adelante en este artículo.
Acercarse
- Use pygame.init() que inicializará todos los módulos importados.
- Establecer el tamaño de la pantalla.
- Establezca la fuente del texto que el usuario escribirá.
- Cree una condición de acuerdo con la clave de usuario.
- Además, declare dos variables que contendrán el nombre del color que se utilizará más adelante para el color de entrada.
- Además, almacene la entrada en una variable para mostrarla en la pantalla.
- Ahora dibuje un rectángulo y pase el argumento que debería estar en la pantalla.
- Además, establezca el tamaño de la pantalla que se representará.
- Use clock.tick(), lo que significa que por cada segundo, como máximo, se deben pasar fotogramas dados.
Funciones utilizadas
Función | Descripción |
---|---|
reloj.tick() | Se utiliza para actualizar el marco en un segundo determinado. |
pygame.exit() | Se usa para salir del juego. |
pygame.init() | Se utiliza para inicializar todos los módulos importados. |
pygame.font.Fuente | Crear un nuevo objeto de fuente a partir de un archivo |
pygame.display.flip() | Actualizará solo una parte de la pantalla a un área actualizada, no completa |
pantalla.fill((r, g, b, a)) | Establecerá el color de fondo de la pantalla. El rango está entre 0 y 255. |
Implementación
Python3
# import sys module import pygame import sys # pygame.init() will initialize all # imported module pygame.init() clock = pygame.time.Clock() # it will display on screen screen = pygame.display.set_mode([600, 500]) # basic font for user typed base_font = pygame.font.Font(None, 32) user_text = '' # create rectangle input_rect = pygame.Rect(200, 200, 140, 32) # color_active stores color(lightskyblue3) which # gets active when input box is clicked by user color_active = pygame.Color('lightskyblue3') # color_passive store color(chartreuse4) which is # color of input box. color_passive = pygame.Color('chartreuse4') color = color_passive active = False while True: for event in pygame.event.get(): # if user types QUIT then the screen will close if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.MOUSEBUTTONDOWN: if input_rect.collidepoint(event.pos): active = True else: active = False if event.type == pygame.KEYDOWN: # Check for backspace if event.key == pygame.K_BACKSPACE: # get text input from 0 to -1 i.e. end. user_text = user_text[:-1] # Unicode standard is used for string # formation else: user_text += event.unicode # it will set background color of screen screen.fill((255, 255, 255)) if active: color = color_active else: color = color_passive # draw rectangle and argument passed which should # be on screen pygame.draw.rect(screen, color, input_rect) text_surface = base_font.render(user_text, True, (255, 255, 255)) # render at position stated in arguments screen.blit(text_surface, (input_rect.x+5, input_rect.y+5)) # set width of textfield so that text cannot get # outside of user's text input input_rect.w = max(100, text_surface.get_width()+10) # display.flip() will update only a portion of the # screen to updated, not full area pygame.display.flip() # clock.tick(60) means that for every second at most # 60 frames should be passed. clock.tick(60)
Producción:
Publicación traducida automáticamente
Artículo escrito por chetanjha888 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA