Pygame et la saisie de texte dans un jeu vidéo

a marqué ce sujet comme résolu.

Salut, j’ai fait un petit code pour la saisie de texte dans pygame, qui ne necessite pas de librairies spéciales.

donc je veux en faire profiter ceux qui en ont besoin, il est très simple et court. C’est un code qui permet de saisir un nom.

Dans la boucle principale, vous mettez ce code à l’endroit où vous voulez avoir de la saisie :

Ne pas oublier de déclarer les variables utilisée, avant la boucle principale sinon pygame vous punira ;) Par exemple quelques unes :

phrase="" # double guillements

char=32 # 32=espace

itm_nom=False # permet que la boucle attende qu'on entre un nom.

(Corrigez dans le code ci-dessous, l’indentation du code après la première ligne, car je fais du copié-collé, et j’ai enlevé des lignes qui ne servaient qu’à moi dans le code, après la première ligne). (à mettre comme j’ai dit dans la boucle principale)

if itm_nom==False:
                if char!=K_RETURN :
                    if char!=32 :
                        if char!=K_BACKSPACE:
                            phrase+=chr(char)
                            char=32
                        else:
                            # permet d'utiliser la touche backspace (retour arrière) pour effacer le dernier caractère
                            dernier=len(phrase)-1
                            phrase=phrase[0:dernier]
                            char=32
                            
                    # ici c'est ma fonction perso pour afficher la variable phrase, mettez la votre.        
                    centre_txt(ecran,200,"Cambria","Le nom : "+phrase,48,jaune)
                else :
                    if len(phrase)>3 :
                            nom=phrase
                            char=32
                            phrase=""
                            itm_nom=True

Dans la partie Evénement de clavier, mettre ce code :

###############################################################################
        if event.type==KEYUP :
###############################################################################
            
            if itm_nom==False :
                char=event.key

Voilà, j’espère beaucoup que ça servira à quelqu’un car j’ai galéré pour chercher sur le net avant de me décider à faire mon propre petit code.

+0 -0

Coorection, j’ai vu le soir même que ce code ne permettait pas de faire les majuscules, j’ai donc corrigé, je mettrais la correction plus tard là je ne peux pas rester plus longtemp sur le net :/

+0 -0

Correction pour avoir les majuscules, mais toujours en qwerty malheureusement.

if itm_nom==False:
                if char!=K_RETURN :
                    if char!=32 :
                        if char!=K_BACKSPACE:
                            phrase+=chr(char)
                            char=32
                        else:
                            # permet d'utiliser la touche backspace (retour arrière) pour effacer le dernier caractère
                            dernier=len(phrase)-1
                            phrase=phrase[0:dernier]
                            char=32
                            
                    # ici c'est ma fonction perso pour afficher la variable phrase, mettez la votre.        
                    centre_txt(ecran,280,"Cambria","Le nom : "+phrase,48,jaune)
                else :
                    if len(phrase)>3 :
                        centre_txt(ecran,250,"Cambria","nom enregistré !",32,jaune)
                        
                        char=32
                        
                        itm_nom=True

Dans la partie Evénement de clavier, mettre ce code :

###############################################################################
        if event.type==KEYUP :
###############################################################################
            
            if itm_nom==False :
                char=event.key
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte