Los personajes realistas interactúan, normalmente hablando entre ellos. Asegúrese de presentar su diálogo de manera accesible y complementaria.
Si su juego presenta personajes, probablemente querrá que conversen entre ellos. Un sistema de diálogo proporciona conversaciones interactivas, progresión de la historia y desarrollo de personajes. La biblioteca de Python Arcade facilita la integración de un sistema de diálogo en su base de código existente.
Con un sistema de diálogo, puede crear conversaciones entre el jugador y los personajes que no son jugadores (NPC). El jugador puede elegir respuestas o tomar decisiones que afectan la narrativa o el resultado del juego.
Este sistema te permite crear historias convincentes y crear interacciones dinámicas, proporcionando una experiencia de juego más inmersiva.
Crea un juego simple
Para comenzar, crea un juego simple usando la biblioteca Arcade. Esto servirá como base para implementar el sistema de diálogo.
El código utilizado en este artículo está disponible en este repositorio GitHub y es gratis para su uso bajo la licencia MIT.
Crear un nuevo archivo llamado juego-simple.py y definir un Juego clase que hereda de arcada. Ventana. Establezca las dimensiones de la pantalla, inicialice las posiciones del jugador y la plataforma e implemente la funcionalidad básica de dibujo. El el jugador puede moverse hacia la izquierda y hacia la derecha utilizando las teclas de flecha.
Aquí está la salida:
Agregar un cuadro de diálogo
Ahora que tiene una estructura de juego básica, agregue un cuadro de diálogo que aparece cuando el jugador choca con un enemigo. Puede crear un cuadro de diálogo utilizando formas simples y mostrarlo en la pantalla.
Agrega un diálogo_activo bandera a la Juego class, que indica si se debe mostrar el cuadro de diálogo. En el on_update método, verificar si hay colisión enemigay, si se detecta, establecer diálogo_activo a Verdadero.
En el en_dibujar método, llame al dibujar_cuadro_de_diálogo método si el diálogo está activo. El dibujar_cuadro_de_diálogo El método dibuja un rectángulo como fondo del cuadro de diálogo y muestra un mensaje de texto.
Crear un nuevo archivo llamado dialog-box.py y agregue el código con las siguientes actualizaciones:
# Dentro de la clase Juego
claseJuego(arcada. Ventana):
definitivamente__en eso__(ser):
# ...self.dialogue_active = FALSO
definitivamenteon_update(uno mismo, delta_time):
si self.check_enemy_collision():
self.dialogue_active = Verdaderodefinitivamenteen_dibujar(ser):
# ...si self.diálogo_activo:
self.draw_dialogue_box()definitivamentecheck_enemy_collision(ser):
jugador_radio = 25
distancia_x = abs (self.jugador_x - self.plataforma_x)
distancia_y = abs (self.jugador_y - self.plataforma_y)
radio_combinado = radio_jugador + 25si distancia_x < radio_combinado y distancia_y < radio_combinado:
devolverVerdadero
demás:
devolverFALSO
definitivamentedibujar_cuadro_de_diálogo(ser):
texto = "¡Hola, jugador! ¿Cómo estás?"
arcade.draw_rectangle_filled (PANTALLA_ANCHO // 2,
ALTURA_PANTALLA // 2, 500, 200, blanco)
arcade.draw_text (texto, ANCHO_PANTALLA // 2,
ALTURA_PANTALLA // 2 + 20, negro, font_size=16,
ancla_x="centro", ancla_y="centro")
A continuación se muestra la salida:
Mostrar texto de diálogo
Ahora, puede mejorar su sistema de diálogo mostrando mensajes de texto dinámicos. Cree una lista de cadenas de diálogo e itérelas para simular una conversación. Cada vez que aparezca el cuadro de diálogo, mostrará un nuevo mensaje.
# Dentro de la clase Juego
claseJuego(arcada. Ventana):
definitivamente__en eso__(ser):
# ...self.dialogue_active = FALSO
self.dialogue_messages = [
"¡Hola, jugador! ¿Cómo estás?",
"Buen tiempo hoy, ¿no?",
"¡Cuidado con los enemigos que acechan por delante!"
]
self.dialogue_index = 0
definitivamentedibujar_cuadro_de_diálogo(ser):
arcade.draw_rectangle_filled (PANTALLA_ANCHO // 2,
ALTURA_PANTALLA // 2, 500, 200, blanco)
arcade.draw_text (self.dialogue_messages[self.dialogue_index],
ANCHO_PANTALLA // 2, ALTURA_PANTALLA // 2 + 20, negro, font_size=16,
ancla_x="centro", ancla_y="centro")
Introducir tres nuevas variables: mensajes_de_diálogo, índice_diálogo, y diálogo_activo. La lista de mensajes de diálogo contiene los mensajes de texto que se mostrarán en el cuadro de diálogo. El dialog_index realiza un seguimiento del mensaje actual para mostrar. Cada vez que aparece el cuadro de diálogo, puede incrementar el índice de diálogo para mostrar el siguiente mensaje.
Agregar un botón
Para que el sistema de diálogo sea más interactivo, agregue un botón para cambiar el texto del diálogo cuando lo presione el jugador. Crear un nuevo archivo llamado multitexto.py y agregue el código con las siguientes actualizaciones:
# Dentro de la clase Juego
claseJuego(arcada. Ventana):
definitivamente__en eso__(ser):
# ...self.dialogue_active = FALSO
self.dialogue_messages = [
"¡Hola, jugador! ¿Cómo estás?",
"Buen tiempo hoy, ¿no?",
"¡Cuidado con los enemigos que acechan por delante!"
]self.dialogue_index = 0
definitivamenteon_mouse_press(yo, x, y, botón, modificadores):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)si self.diálogo_activo:
si botón == arcada. MOUSE_BUTTON_IZQUIERDO:
self.dialogue_index = índicedefinitivamentedibujar_cuadro_de_diálogo(ser):
# ...
arcade.draw_text("Próximo", ANCHO_PANTALLA // 2, ALTURA_PANTALLA // 2 - 50,
negro, font_size=16, ancla_x="centro", ancla_y="centro")
Añade el on_mouse_press método a la Juego clase. Cuando el diálogo está activo y presiona el botón izquierdo del mouse, este método incrementa el índice_diálogo para mostrar el siguiente mensaje en el mensajes_de_diálogo lista. El % len (self.dialogue_messages) asegura que el índice vuelve al principio de la lista cuando llega al final.
Incluyendo características adicionales
Para mejorar aún más el sistema de diálogo, puede considerar agregar las siguientes características adicionales:
Múltiples opciones
En lugar de un solo mensaje, puede proporcionar múltiples opciones para que el jugador seleccione. Esto le permite al jugador influir en el resultado de la conversación o tomar decisiones que afectan la progresión del juego.
Para implementar esto, puede modificar el dibujar_cuadro_de_diálogo método para mostrar una lista de opciones y manejar la selección del jugador en consecuencia.
Retratos de personajes
Para agregar estilo visual a su sistema de diálogo, puede incorporar retratos de personajes junto con el texto. Cada personaje puede tener una imagen o sprite correspondiente que los represente durante la conversación. Mostrar retratos de personajes puede ayudar a los jugadores a identificar al orador y agregar profundidad a la experiencia de narración.
Animación de texto
Puede animar el texto para hacerlo más atractivo visualmente. Por ejemplo, puede hacer que el texto aparezca gradualmente, un carácter a la vez, para simular la escritura. Esto crea una sensación de anticipación y puede hacer que el diálogo sea más interesante para el jugador.
Efectos de sonido
Adición de efectos de sonido a su sistema de diálogo puede mejorar la atmósfera general del juego. Por ejemplo, puede reproducir efectos de sonido cuando aparece el cuadro de diálogo o cuando el jugador selecciona una opción de diálogo. Estas señales de audio pueden hacer que la conversación se sienta más envolvente e impactante.
Mejores Prácticas para el Sistema de Diálogo
Al implementar un sistema de diálogo, tenga en cuenta las siguientes mejores prácticas:
Interfaz de usuario clara
Asegúrese de que el cuadro de diálogo y el texto sean legibles y estén colocados correctamente en la pantalla. Use fuentes, colores y tamaños apropiados para que el texto sea fácil de leer.
Voz de carácter consistente
Mantenga la consistencia en la forma en que hablan los personajes y el tono que usan a lo largo del diálogo. Esto ayuda a crear conversaciones creíbles y atractivas.
Relevancia para el juego
Asegúrese de que el diálogo contribuya significativamente a la narrativa del juego o proporcione información relevante para el jugador. Evite conversaciones excesivas o irrelevantes que puedan interrumpir el flujo del juego.
Pruebas e iteraciones
Pruebe su sistema de diálogo a fondo para identificar cualquier problema o inconsistencia. Repita su diálogo en función de los comentarios de los jugadores para mejorar la calidad general y el impacto de las conversaciones.
Haz que los juegos sean más divertidos con el sistema de diálogo
Agregar un sistema de diálogo a sus juegos usando la biblioteca Arcade en Python puede mejorar enormemente la experiencia del jugador. Permite conversaciones interactivas, narraciones y desarrollo de personajes, lo que hace que sus juegos sean más inmersivos, atractivos y divertidos de jugar.