2017-05-29 8 views
1

Je me demandais s'il était possible d'afficher du texte à partir d'un fichier txt sur un écran pygame. Je travaille sur un jeu, et j'essaie d'afficher les instructions à partir d'un fichier texte dans mon jeu.Comment afficher le fichier txt sur un écran pygame?

Voici ce que je l'ai fait ci-dessous:

def instructions(): 
    instructText = instructionsFont.render(gameInstructions.txt, True, WHITE) 
    screen.blit(instructText, ((400 - (instructText.get_width()/2)),(300 - (instructText.get_height()/2)))) 

Cependant je reçois l'erreur:

line 356, in instructions 
    instructText = instructionsFont.render(pongInstructions.txt, True, WHITE) 
NameError: name 'pongInstructions' is not defined 

Ma tentative est cependant tout tâtonnement parce que je suis en fait sûr de savoir comment faire ... Toute aide est grandement appréciée!

Répondre

0

gameinstructions n'est pas défini car python pense qu'il s'agit d'une variable.

Pour dire python est une chaîne que vous devez le mettre entre guillemets:

instructText = instructionsFont.render("gameInstructions.txt", True, WHITE) 

Cependant c'est probablement pas ce que vous voulez. Ce que vous voulez faire est de lire le fichier. Pour cela, vous devez utiliser l'instruction with en toute sécurité ouvrir et fermer le fichier:

with open("gameInstructions.txt") as f: 
    instructText = instructionsFont.render(f.read(), True, WHITE) 

Je ne peux pas essayer actuellement le code, mais vous pourriez avoir besoin de boucle à travers les lignes au lieu, si pygame ne peut pas gérer plusieurs lignes du texte à la fois:

with open("gameInstructions.txt") as f: 
    for line in f: 
     instructText = instructionsFont.render(line, True, WHITE) 
+0

J'ai essayé ce code, mais je reçois une erreur disant: ligne 26, dans decode codecs.ascii_decode (entrée, de self.errors) retour [0] UnicodeDecodeError: codec 'ascii' ne peut pas décoder octet 0xe2 en position 397: ordinal pas dans la gamme (128) – Student

+0

quelle version de python êtes-vous o n? Il semble s'attendre à ascii, dont le caractère "â" ne fait pas partie. D'autres messages, je peux voir qu'il devrait soutenir unicode https://stackoverflow.com/questions/668359/unicode-fonts-in-pygame#668596 – Atsch

+0

Je cours en Python 3.6.0 – Student