¿Cuál es el punto de un juego sin puntuación? Algunos pueden prescindir de ellos, pero la mayoría de los juegos que creará necesitarán decirle al jugador qué tan bien lo está haciendo.

Las puntuaciones son una parte integral de muchos juegos, ya que proporcionan una medida del progreso y los logros de los jugadores.

En Python, la biblioteca Arcade ofrece una manera simple y eficiente de administrar las puntuaciones en los juegos. Mediante la gestión eficaz de las puntuaciones, puede mejorar la participación de los usuarios y proporcionar una experiencia de juego más inmersiva.

Crea un juego simple

Antes de comenzar, asegúrese de tener pip instalado en su dispositivo. Use este comando para instalar la biblioteca arcade:

pip instalar arcade

Ahora, crea un juego simple usando la biblioteca Arcade de Python.

El código utilizado en este artículo está disponible en este repositorio GitHub y es gratis para su uso bajo la licencia MIT.

En este juego, el jugador puede moverse hacia la izquierda y hacia la derecha usando las teclas de flecha, mientras se coloca un obstáculo en el mismo eje y.

instagram viewer
importar arcada

# Configurar las dimensiones de la ventana
ANCHO_PANTALLA = 800
PANTALLA_ALTURA = 600

claseMi juego(arcada. Ventana):
definitivamente__en eso__(uno mismo, ancho, alto):
super().__init__(ancho, alto)
self.jugador_x = ancho // 3
self.score = 0

definitivamenteon_key_press(auto, clave, modificadores):
si clave == arcade.clave. IZQUIERDA:
self.jugador_x -= 10
elif clave == arcade.clave. BIEN:
self.jugador_x += 10

definitivamenteactualizar(uno mismo, delta_time):
# Actualiza la lógica del juego aquí
aprobar

definitivamenteen_dibujar(ser):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. AZUL)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. ROJO)

definitivamenteprincipal():
juego = MiJuego (PANTALLA_ANCHO, PANTALLA_ALTO)
arcade.ejecutar()

si __nombre__ == "__principal__":
principal()

Seguimiento y cálculo de puntajes

Para realizar un seguimiento de la puntuación en su juego, puede crear un mecanismo para aumentar la puntuación siempre que se cumpla una condición específica. Por ejemplo, la puntuación aumenta cada vez que el el jugador se mueve en tu juego y toca con éxito el obstáculo. Puedes cambiar el actualizar método para incluir lógica de cálculo de puntuación:

claseMi juego(arcada. Ventana):
definitivamente__en eso__(uno mismo, ancho, alto):
super().__init__(ancho, alto)
self.jugador_x = ancho // 3
self.score = 0

definitivamenteon_key_press(auto, clave, modificadores):
si clave == arcade.clave. IZQUIERDA:
self.jugador_x -= 10
elif clave == arcade.clave. BIEN:
self.jugador_x += 10

definitivamenteactualizar(uno mismo, delta_time):
si self.jugador_x > 330y self.jugador_x < 470:
puntuación propia += 1

Visualización de la partitura

Para mostrar la puntuación al jugador, modifique el en_dibujar método para incluir una representación de texto:

claseMi juego(arcada. Ventana):
# ...

definitivamenteen_dibujar(ser):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. AZUL)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. ROJO)

puntuación_texto = Puntuación f": {puntuación propia}"
arcade.draw_text (puntuación_texto, 10, 10, arcade.color. BLANCO, 14)

Al agregar el código anterior, puede mostrar la puntuación en la esquina inferior izquierda de la ventana del juego.

Almacenamiento de la puntuación más alta

Para proporcionar una sensación de logro y competencia a los jugadores, es esencial almacenar y mostrar la puntuación más alta. Puede usar un enfoque simple basado en archivos para esto.

Utilizar el carga_puntaje_alto método para leer la puntuación más alta de un archivo llamado puntuación_alta.txt y devuélvelo. Después de eso, puede guardar el nuevo puntaje alto en el archivo usando el save_high_score método.

claseMi juego(arcada. Ventana):
definitivamente__en eso__(uno mismo, ancho, alto):
super().__init__(ancho, alto)
self.jugador_x = ancho // 3
self.score = 0
self.high_score = self.load_high_score()

definitivamentecarga_puntaje_alto(ser):
intentar:
con abierto("puntaje_alto.txt", "r") como archivo:
devolver int (archivo.leer())
excepto Error de archivo no encontrado:
devolver0

definitivamentesave_high_score(ser):
con abierto("puntaje_alto.txt", "w") como archivo:
file.write (str (self.high_score))

definitivamenteactualizar(uno mismo, delta_time):
# ...

si self.score > self.high_score:
self.puntuación_alta = self.puntuación
self.save_high_score()

Mostrar puntaje alto

Similar a mostrar el puntaje actual, puede agregar una representación de texto para mostrar el puntaje más alto:

claseMi juego(arcada. Ventana):
# ...

definitivamenteen_dibujar(ser):
# ...

high_score_text = f"Puntaje alto: {self.high_score}"
arcade.draw_text (high_score_text, 10, 30, arcade.color. BLANCO, 14)

Al incluir el código anterior en el en_dibujar método, puede mostrar la puntuación más alta justo encima de la puntuación actual.

Incluyendo características adicionales

La gestión de puntuaciones en los juegos a menudo implica la incorporación de funciones adicionales para hacer que el juego sea más atractivo y dinámico. Exploremos algunos ejemplos de cómo puede introducir funciones adicionales junto con la gestión de puntuación en su juego.

potenciadores

Los potenciadores son elementos especiales que otorgan a los jugadores ventajas temporales o puntos de bonificación. Crear un activar_encender_arriba método que desencadena la activación del encendido, configurando el power_up_active marca a Verdadero.

Puedes programar el deactivate_power_up método para ejecutar después de una cierta duración (por ejemplo, 10 segundos) utilizando el arcade.horario función. Durante el período activo del encendido, puede utilizar el apply_power_up_effects método para implementar mejoras de juego específicas.

Este es un ejemplo de cómo implementar una función de encendido en tu juego.

claseMi juego(arcada. Ventana):
definitivamente__en eso__(uno mismo, ancho, alto):
super().__init__(ancho, alto)
self.jugador_x = ancho // 3
self.score = 0
self.power_up_active = FALSO

definitivamenteactualizar(uno mismo, delta_time):
si self.power_up_active:
# Aplicar efectos de encendido durante el juego
self.apply_power_up_effects()
puntuación propia += 10

definitivamenteapply_power_up_effects(ser):
# Agregue lógica específica de encendido aquí
aprobar

definitivamenteactivar_encender_arriba(ser):
self.power_up_active = Verdadero
# Establecer un temporizador o duración para el efecto de encendido
arcade.schedule (self.deactivate_power_up, 10.0)

definitivamentedeactivate_power_up(uno mismo, delta_time):
self.power_up_active = FALSO

Sistema combinado

Un sistema combinado recompensa a los jugadores por lograr acciones exitosas consecutivas o multiplicadores de puntaje. Crear un aumentar_combo_contador método que incrementa el contador combinado y aumenta la puntuación en función del nivel combinado actual.

Puedes llamar al restablecer_combo_contador y restablece el contador combinado a cero cada vez que se produce una acción fallida. Aquí hay una implementación simple de un sistema combinado:

claseMi juego(arcada. Ventana):
definitivamente__en eso__(uno mismo, ancho, alto):
super().__init__(ancho, alto)
self.jugador_x = ancho // 3
self.score = 0
self.combo_contador = 0

definitivamenteactualizar(uno mismo, delta_time):
# Verificar acciones exitosas
si self.check_successful_action():
self.aumentar_combo_contador()
demás:
self.reset_combo_counter()

definitivamenteaumentar_combo_contador(ser):
self.combo_counter += 1
self.score += self.combo_counter

definitivamenterestablecer_combo_contador(ser):
self.combo_contador = 0

Al incorporar características adicionales, como potenciadores y sistemas combinados, puede agregar profundidad y emoción a su juego, Proporcionar a los jugadores incentivos adicionales para mejorar su desempeño, crear estrategias para sus acciones y lograr mejores resultados. puntuaciones.

Mejores prácticas para la gestión de puntuaciones

Cuando se trata de administrar puntajes en los juegos, seguir las mejores prácticas puede ayudar a crear una experiencia más agradable y atractiva para los jugadores. Estas son algunas prácticas clave a tener en cuenta:

Mecanismos de puntuación significativos

Diseñe mecanismos de puntuación que se alineen con los objetivos del juego y brinden comentarios significativos a los jugadores. El sistema de puntuación debe reflejar el progreso, la habilidad y los logros del jugador dentro del juego.

Considere asignar diferentes valores de puntos a diferentes acciones o eventos en función de su dificultad o importancia para el juego.

Comentarios visuales

Proporcione retroalimentación visual a los jugadores cuando cambie la puntuación. Puede lograr esto a través de notificaciones en pantalla, animaciones o efectos de partículas. Las señales visuales crean una sensación de logro y refuerzan las acciones del jugador, aumentando su compromiso con el juego.

Efectos de sonido y animaciones

Incorporar efectos de sonido en tu juego relacionados con actualizaciones de puntuación para que la experiencia sea más inmersiva. Por ejemplo, reproduzca un efecto de sonido de celebración o muestre una explosión de confeti cuando el jugador alcance un hito importante. Estos elementos audiovisuales agregan emoción y refuerzan el circuito de retroalimentación positiva para los jugadores.

Equilibrar la dificultad y la escala de puntuación

Garantice una relación equilibrada entre la dificultad y la escala de puntuación. A medida que los jugadores avanzan en el juego o se encuentran con obstáculos más desafiantes, ajuste el sistema de puntuación en consecuencia. Escalar la puntuación en función de la curva de dificultad del juego ayuda a mantener una experiencia justa y gratificante para los jugadores.

Al adherirse a estas prácticas recomendadas, puede administrar de manera efectiva las puntuaciones de su juego, brindar a los jugadores comentarios significativos y crear una experiencia gratificante y atractiva.

Mejore la participación en el juego con el seguimiento de la puntuación

Al implementar el seguimiento de puntajes en su juego, puede mejorar significativamente la participación de los jugadores. Las puntuaciones brindan una sensación de logro, fomentan la rejugabilidad y fomentan la competencia entre los jugadores.

Muestre las puntuaciones de forma destacada y recompense los grandes logros: motivará a los jugadores a luchar por un mejor rendimiento y mejorar sus habilidades.