Comment créer une zone de saisie de texte avec pygame?
Je veux obtenir un peu de texte saisie de l'utilisateur en python et afficher ce qu'ils sont en tapant dans une zone de texte, et quand ils appuyez sur entrée, il est stocké dans une chaîne de caractères. Je l'ai cherché partout mais je ne trouve rien.(J'utilise pygame)
OriginalL'auteur Deps | 2017-09-24
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir un rect que la superficie de la zone d'entrée. Si un
pygame.MOUSEBUTTONDOWN
événement se produit, utilisez lacolliderect
méthode de lainput_box
rect pour vérifier si il entre en collision avec leevent.pos
et de l'activer par la définition d'uneactive
variableTrue
.Si la zone est active, vous pouvez taper quelque chose et pygame va générer
pygame.KEYDOWN
événements qui ont ununicode
attribut que vous pouvez tout simplement ajouter à une chaîne de caractères, par exempletext += event.unicode
. Si l'utilisateur appuie sur entrée, vous pouvez faire quelque chose avec lestext
chaîne (dans l'exemple, je viens de l'imprimer) et de le remettre à''
.Voici un orientée objet, la variante qui vous permet de créer plusieurs zones de saisie:
Il y a aussi des modules de tiers disponibles comme pygame_textinput.
OriginalL'auteur skrx
Vous pouvez trouver un grand module pygame saisie de texte ici .
Je l'utilise depuis un moment et je l'aime vraiment. Un tutoriel pour l'utiliser, il est inclus dans la description.
Cependant, j'ai ajouté la possibilité de tracer un (couleur) rectangle autour du texte, par l'ajout d'un rect et rect_color paramètre __init__() fonction et en ajoutant
à la mise à jour(auto, événements) fonction.
OriginalL'auteur Jonas De Schouwer