43 lines
1.6 KiB
Python
43 lines
1.6 KiB
Python
|
import pygame.font
|
||
|
|
||
|
class Puntuacion:
|
||
|
''' Clase par mostrar informacion de la puntuacion '''
|
||
|
|
||
|
def __init__(self, juego):
|
||
|
''' Inicializar puntuacion '''
|
||
|
self.screen = juego.screen
|
||
|
self.screen_rect = self.screen.get_rect()
|
||
|
self.settings = juego.settings
|
||
|
self.puntos = 0
|
||
|
self.nivel = 1
|
||
|
''' Ajuste de la fuente de la puntuacion '''
|
||
|
self.text_color = (30, 30, 30)
|
||
|
self.font = pygame.font.SysFont(None,48)
|
||
|
self.preparar_puntuacion()
|
||
|
self.preparar_nivel()
|
||
|
|
||
|
def preparar_puntuacion(self):
|
||
|
''' Convertir puntuacion en imagen renderizada '''
|
||
|
score_str = "Ptos: " + str(self.puntos)
|
||
|
self.score_image = self.font.render(score_str, True, self.text_color)
|
||
|
''' Puntuacion en parte superior derecha '''
|
||
|
self.score_rect = self.score_image.get_rect()
|
||
|
self.score_rect.right = self.screen_rect.right - 20
|
||
|
self.score_rect.top = 40
|
||
|
|
||
|
def preparar_nivel(self):
|
||
|
''' convertir texto en imagen '''
|
||
|
nivel_str = f"Nivel: {self.nivel}"
|
||
|
self.nivel_image = self.font.render(nivel_str, True, self.text_color)
|
||
|
''' Nivel en parte sup. derecha y debajo de los puntos '''
|
||
|
self.nivel_rect = self.nivel_image.get_rect()
|
||
|
self.nivel_rect.right = self.screen_rect.right - 20
|
||
|
self.nivel_rect.top = 10
|
||
|
|
||
|
def mostrar_puntacion(self):
|
||
|
''' dibujar la puntacion '''
|
||
|
self.preparar_puntuacion()
|
||
|
self.screen.blit(self.score_image, self.score_rect)
|
||
|
''' dibujar el nivel '''
|
||
|
self.preparar_nivel()
|
||
|
self.screen.blit(self.nivel_image, self.nivel_rect)
|