Pygame: font.render() выдает TypeError: неверный аргумент RGBA переднего плана

Я попытался создать панель общего количества кликов с помощью screen.blit() (также я хочу, чтобы текст обновлялся при нажатии), я попытался

text = font.render('Your total clicks are',totalbal, True, WHITE)

но это не работает

line 21, in <module>
    text = font.render('Your total clicks are',totalbal, True, WHITE)
TypeError: Invalid foreground RGBA argument

Я также пробовал это с str(totalbal), но снова не работает.

import pygame, sys, time
from pygame.locals import *

pygame.init()
WHITE = 255,255,255
font = pygame.font.SysFont(None, 44)
baltotal = open("totalbal.txt", "r+")
totalbal = int(baltotal.read())
w = 800
h = 600
screen = pygame.display.set_mode((w,h))
Loop = True
text = font.render('Your total clicks are',totalbal, True, WHITE)
while Loop: # main game loop
    ...

        if event.type == MOUSEBUTTONDOWN: #detecting mouse click
                totalbal += cps
                print("Your total clicks are", totalbal, end="\r")
    ...
    screen.blit(text, (235,557))
    pygame.display.flip()
    pygame.display.update()
    clock.tick(30)

with open("totalbal.txt", "w") as baltotal:
    baltotal.write(str(totalbal))
baltotal.close

pygame.quit()
sys.exit()

person Zgn    schedule 19.05.2021    source источник
comment
он обновляется, когда вы выходите и входите в систему, но я хочу, чтобы он обновлялся каждый раз   -  person Zgn    schedule 19.05.2021


Ответы (1)


Вы должны объединить строки

text = font.render('Your total clicks are ' + str(totalbal), True, WHITE)

или используйте форматированные строковые литералы

text = font.render(f'Your total clicks are {totalbal}', True, WHITE)

Если текст изменится, вам нужно снова отобразить текст Surface:

text = font.render(f'Your total clicks are {totalbal}', True, WHITE)
while Loop: # main game loop
    # [...]

    for event in pygame.event.get():

        if event.type == MOUSEBUTTONDOWN: #detecting mouse click
            totalbal += cps
            text = font.render(f'Your total clicks are {totalbal}', True, WHITE)

    # [...]
person Rabbid76    schedule 19.05.2021