Cuando se agrega nuevo texto, éste aparece en la parte inferior y el resto del texto se desplaza hacia arriba.
Quiero mostrar texto en la caja de texto que indique si acerté y cuánto daño hice, y viceversa para el enemigo, pero simplemente no puedo descubrir cómo hacer que el texto se muestre de esta manera.
Aquí está el código en el que estoy trabajando:
def textBox(textv):
lText = []
text = font.render(str(textv),True,(1,1,1))
lText.append(text)
if len(lText) >= 10:
lText.pop(9)
screen.blit(lText[0],(20,400))
screen.blit(lText[1],(20,380))
while True:
battle_screen()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.blit(enemy_background,(20,20))
player.drawPlayer()
enemy.newEnemy()
textBox("Daniel")
textBox("Jenny")
pygame.display.update()
davy.ai
Para mostrar texto en la caja de texto, necesitas modificar la función
textBox
agregando dos parámetrosx
ey
. Estos parámetros especifican la posición del texto en la pantalla. También necesitas cambiar la listalText
a una variable global para que puedas agregar texto a ella desde múltiples funciones.Aquí está el código modificado:
En este código modificado, la función
textBox
ahora toma tres parámetros:textv
es el texto a mostrar,x
es la coordenada x del texto en la pantalla yy
es la coordenada y. La función crea un nuevo objetopygame.Surface
a partir del texto y lo agrega a la lista globallText
. Si el largo de la lista excede 10, el primer elemento se elimina. La función itera a través de la lista y muestra cada superficie en la pantalla en la posición especificada.En el bucle principal, llamamos dos veces a la función
textBox
con texto y posiciones de ejemplo para demostrar cómo funciona.Ten en cuenta que necesitarás tener un objeto
font
definido en tu código para que esto funcione.