IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Obtenir une chaine de caractère de l'utilisateur


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Par défaut Obtenir une chaine de caractère de l'utilisateur
    Bonjour,

    Je souhaite faire le tableau des higshcore de mon jeu. J'ai compris comment écrire dans un fichier et lire ne sera pas bien long à apréhender. Cependant il me faut aussi récuperer le nom du joueur sans quoi il serait frustré de ne pas pouvoir arborer fièrement son tableau des scores avec un pseudonymes même des plus stupides.
    J'ai donc chercher à utiliser une textbox. Mais Ô rage, Ô desespoire après maintes recherches je n'arrive aucunement a les maitriser et je me refuse catégoriquement a utiliser quelconque librairie externe a XNA (ah oui, aurait-il été a utile de préciser que j'utilise XNA ?).
    Après mûre reflexion je me suis finalement rendu compte que ce genre de textbox nuisait a l'immersion, en bref c'est pas beau, j'en veux pas.
    J'aimerais donc que le pseudo s'écrive directement dans le jeu à chaque fois qu'on appui sur une lettre. Je peux donc utiliser ce genre de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Kstate.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.A)) { nom_joueur = nom_joueur + "A";
    pour chacune des lettres, puis afficher la variable nom_joueur.
    Vous l'aurez compris cette méthode m'oblige à recopier 26 fois au moins la même ligne, ce qui , vous en conviendrez, est des plus agaçants en programmation.
    Alors je vois donc tout de suite vos exclamation "Mais utilise donc une boucle hey patate !"
    Oui mais voila on incrémenterait une variable numérique et non une variable string. Je serais donc toujours obligé d'écrire 26 lignes pour dire a quelle lettre correspond chaque chiffre.

    Je cherche donc une solution qui me permettrait d'écrire tout ceci en quelques lignes.

    Merci.

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Comme on n'a pas de garantie que les valeurs de clés pour les lettres ou les chiffres soient parfaitement consécutives, le plus sûr est de faire une fonction du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private static readonly IDictionary<Keys, Char> KeysToChar =  
            new Dictionary<Keys, char> { 
        { Keys.D0, "0" }, { Keys.D1, "1" }, { Keys.D2, "2" }, ... 
        { Keys.NumPad0, "0"}, { Keys.NumPad1, "1" }, { Keys.NumPad2, "2" }, ...
        { Keys.A, "A"}, { Keys.B, "B"}, {Keys.C,"C"}, ... 
      } ; 
     
    internal char KeyToChar(Microsoft.Xna.Framework.Input.Keys Key) 
    { 
       if (KeysToChar.ContainsKey(Key)) return KeysToChar[Key]; 
       else return '\0' ; 
    }

  3. #3
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 230
    Par défaut
    La méthode GetPressedKeys() pourrait te convenir.

    A toi ensuite de gérer le fait que le joueur peut appuyer sur plusieurs touches en même temps.

    Tu doit pouvoir transtyper (caster) l'enumération en caractères directement, car elle utilise les valeurs ASCII des caractères en majuscule.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Par défaut
    Merci

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Par défaut
    Juste pour info 'B' = 'A' + 1. donc oui, on peut incrémenter un char

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. demandé à l'utilisateur d'insérer une chaine de caractère
    Par kali38 dans le forum Général Python
    Réponses: 10
    Dernier message: 27/06/2011, 16h07
  2. Réponses: 42
    Dernier message: 22/09/2010, 12h57
  3. Obtenir les n caractères d'une chaine de caractères
    Par wissem.ba dans le forum Windows Forms
    Réponses: 8
    Dernier message: 27/02/2009, 14h15
  4. enlever le = d'une formule afin d'obtenir une chaine de caractères
    Par lionhigh dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/07/2008, 15h05
  5. [md5] obtenir une chaine de caractère
    Par FFF dans le forum Sécurité
    Réponses: 1
    Dernier message: 27/10/2005, 23h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo