web-dev-qa-db-fra.com

Python affiche le texte avec la police et la couleur?

Est-il possible d'afficher du texte sur une fenêtre pygame à l'aide de python?

Je dois afficher de nombreuses informations en direct qui sont mises à jour et je préfère ne pas créer d'image pour chaque personnage dont j'ai besoin.

Puis-je transférer du texte à l'écran?

51
maxhud

Oui. Il est possible de dessiner du texte en pygame:

# initialize font; must be called after 'pygame.init()' to avoid 'Font not Initialized' error
myfont = pygame.font.SysFont("monospace", 15)

# render text
label = myfont.render("Some text!", 1, (255,255,0))
screen.blit(label, (100, 100))
56
veiset

Vous pouvez utiliser vos propres polices personnalisées en définissant le chemin d'accès à l'aide de pygame.font.Font

pygame.font.Font(filename, size): return Font

exemple:

pygame.font.init()
font_path = "./fonts/newfont.ttf"
font_size = 32
fontObj = pygame.font.Font(font_path, font_size)

Rendez ensuite la police à l'aide de fontObj.render et blit sur une surface comme dans la réponse de veiset ci-dessus. :)

9
Technohazard

J'ai un code dans mon jeu qui affiche le score en direct. C'est dans une fonction pour un accès rapide.

def texts(score):
   font=pygame.font.Font(None,30)
   scoretext=font.render("Score:"+str(score), 1,(255,255,255))
   screen.blit(scoretext, (500, 457))

et je l'appelle en utilisant ceci dans ma boucle while:

texts(score)
6
mechanicarts

J'ai écrit un wrapper, qui mettra en cache les surfaces de texte, ne restitue que lorsqu'il est sale. googlecode/ninmonkey/nin.text/demo /

2
ninMonkey