Python affiche le texte avec la police et la couleur?
Existe-t-il un moyen d'afficher du texte sur une fenêtre pygame en utilisant python?
J'ai besoin d'afficher un tas d'informations en direct qui se mettent à jour et qui préfèrent ne pas créer d'image pour chaque personnage dont j'ai besoin.
Puis-je lire du texte à l'écran?
4 réponses
Oui. Il est possible de dessiner du texte dans 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))
Vous pouvez utiliser vos propres polices personnalisées en définissant le chemin de la police à l'aide de pygame.police.Police
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)
Rend ensuite la police en utilisant fontObj.rendre et blit à une surface comme dans la réponse de veiset ci-dessus. :)
J'ai du code dans mon jeu qui affiche le score en direct. Il 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)
J'ai écrit un wrapper, qui mettra en cache les surfaces de texte, seulement re-rendu quand sale. googlecode / ninmonkey / nin.texte / démo /