← Все вопросы

Как вывести текст и счёт на экран в pygame?

Задан 20 месяцев назад362 просмотров2 ответа
6

Считаю очки в переменной score, но как показать их прямо в окне игры? Пробовал print(score) — оно печатает в консоль, а не в окно. Хочу надпись «Счёт: 5» в углу экрана.

2 ответа

11
✓ Принятый ответ — помог автору

В pygame текст нельзя просто напечатать — его надо нарисовать как картинку. Шаги: создать шрифт, отрендерить текст в поверхность, и blit-нуть её на экран.

font = pygame.font.SysFont(None, 36)   # один раз, до цикла

# внутри игрового цикла, при отрисовке:
text = font.render(f"Счёт: {score}", True, (255, 255, 255))
screen.blit(text, (10, 10))            # координаты левого-верхнего угла

render принимает: строку, сглаживание (True = красиво), цвет. Создавай объект font один раз до цикла — это медленная операция, незачем делать её каждый кадр. А вот render с актуальным счётом вызывай каждый кадр, чтобы число обновлялось.

4

Если русские буквы выводятся квадратиками — SysFont(None, 36) мог подцепить шрифт без кириллицы. Укажи конкретный: pygame.font.SysFont("arial", 36) или скачай .ttf и подключи через pygame.font.Font("myfont.ttf", 36).

Ваш ответ

Войдите, чтобы ответить на вопрос.