Как мне центрировать текст только по оси x, но иметь возможность перемещать ось y в pygame? - PullRequest
3 голосов
/ 01 августа 2020

Я пытаюсь поместить текст в центр экрана, но также и сверху, чтобы пометить текст в центре. Чтобы центрировать текст в настоящее время, я использую приведенный ниже код ...

info = pygame.display.Info()
screen = pygame.display.set_mode((info.current_w, info.current_h), pygame.FULLSCREEN)
screen_rect = screen.get_rect()

txt = font.render("some random message", True, color)

screen.blit(txt, txt.get_rect(center=screen_rect.center))

Но я не могу найти способ изменить центр, используя get_rect(), чтобы редактировать только ось y. Я также не смог найти более подробной информации о функции get_rect() в документации.

1 Ответ

4 голосов
/ 01 августа 2020

Объект pygame.Rect имеет следующие атрибуты:

x, y 
top, left, bottom, right 
topleft, bottomleft, topright, bottomright
midtop, midleft, midbottom, midright
center, centerx, centery 
size, width, height
w,h

Таким образом, вы можете установить centerx на centerx экрана, чтобы прямоугольник был центрирован, не затрагивая y значение.

screen.blit(text, text.get_rect(centerx=screen_rect.centerx))

Для завершения, если вы хотите, чтобы оно было центрировано вверху, вы можете написать

screen.blit(text, text.get_rect(midtop=screen_rect.midtop)

и центрировать внизу

screen.blit(text, text.get_rect(midbottom=screen_rect.midbottom)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...