python-Bibliothek pygame: text zentrieren
Ich habe einen code:
# draw text
font = pygame.font.Font(None, 25)
text = font.render("You win!", True, BLACK)
screen.blit(text, [SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2])
Wie kann ich die text width-und height-Methoden wie in java, so kann ich den text zentrieren wie:
screen.blit(text, [SCREEN_WIDTH / 2 - text_w / 2, SCREEN_HEIGHT / 2 - text_h / 2])
Wenn dies nicht möglich ist, was ist einen anderen Weg ?
Ich habe festgestellt, diese Beispiel, aber ich habe nicht wirklich verstehen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Abmessungen des wiedergegebenen text-Bild-mit
text.get_rect()
gibt eine Rect Objekt mitwidth
undheight
Attribute, unter anderem (siehe die verlinkten Dokumentation für eine vollständige Liste). I. e. Sie können einfach tuntext.get_rect().width
.Kannst du immer nur zentriert den text Rechteck, wenn Sie es packen:
nur eine weitere option
Gerenderten text ist blitted auf eine transparente Oberfläche, in der Pygame. So können Sie die Methoden verwenden, die von der Oberfläche Klasse hier beschrieben:
http://www.pygame.org/docs/ref/surface.html#pygame.Surface.get_width
So für Sie die folgenden arbeiten würde:
text.get_width()
text.get_height()
Habe ich diese 2 Methoden zu schreiben, in der Mitte
Nur ein Beispiel:
Den
Srect.midtop = (960, 540)
bedeutet die Anzahl der Pixel, die der rechten und die Anzahl der Pixel von oben nach unten.
{}
zu format-code. Und vielleicht fügen Sie einige leere Zeilen im code zu machen, mehr lesbar (siehe PEP 8 -- Style Guide for Python Code | Python.org. Aber ehrlich gesagt, deine Antwort ist die schlechteste Antwort auf dieser Seite.