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 :

Conditionnel appui sur touche clavier


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Par défaut Conditionnel appui sur touche clavier
    Bonjour à tous,

    J'essaye actuellement de réaliser un programme qui marcherait comme cela :
    si appuie sur touche "1" du clavier, afficher ceci,
    si appuie sur touche "2" du clavier, afficher ceci,
    si appuie sur touche "3" du clavier, afficher ceci.

    Est-ce mieux d'utiliser "If" ou bien "Switch" ? et si ou comment car je n'arrive pas à trouver la solution.

    Un switch dans ce style pourrait être utilisé mais par quoi remplacer KEY_UP, DOWN, LEFT et RIGHT ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    switch(c)
               {
                  case KEY_UP:
                    printw("Appui de la fleche du haut\n");
                    break;
                  case KEY_DOWN:
                    printw("Appui de la fleche du bas\n");
                    break;
                  case KEY_LEFT:
                    printw("Appui de la fleche de gauche\n");
                    break;
                  case KEY_RIGHT:
                    printw("Appui de la fleche de droite\n");
                    break;
                             }

    Merci énormément,

    Florestan

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Tu ne peux pas capter une fleche en temps normal. En effet, normalement, tu lis un texte, pas les appuis sur les touches du clavier.

    Si tu utilises la console, il faut soit la placer en mode brut (raw mode), et tout faire toi même, soit utiliser un *curse (ncurse), qui le fera pour toi.
    Si au contraire le problème se pose dans une interface graphique, utilise la solution de la bibliothèque (SDL, SFML, GLUT, Direct-je-ne-sais-quoi, etc).

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2014
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 227
    Par défaut
    Sachant qu'avec la SFML ça te donnerai un truc 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
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    #include <SFML/graphics.hpp>
     
    int main(void)
    {
       using std::cout;
       using std::endl;
     
       sf::RenderWindow window;
       window.create( sf::VideoMode( x, y ), "nom", sf::Styles::Default );
     
      while( window.isOpen())
      {
         sf::Event event;
         while( window.pollEvent( event ) )
         {
            if( event.type == event.Closed )
               window.close();
            if( event.type == event.KeyPressed )  // switch
            {
               if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) )
                  /// afficher quelque chose
               else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Down ) )
                  /// afficher autre chose
             }
          }
          window.clear( sf::Color::White );
          window.display();
       }
       return 0;
    }

Discussions similaires

  1. Aller à une balise name par appui sur touche clavier
    Par christ_28360 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 09/02/2010, 14h41
  2. Detection d'appuis sur touche CTRL + autre touche
    Par rolls dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 11/11/2008, 14h23
  3. Réponses: 2
    Dernier message: 05/05/2008, 13h16
  4. appui sur touche
    Par Ludo_360 dans le forum Delphi
    Réponses: 6
    Dernier message: 14/05/2007, 09h13
  5. Simuler un appui de touche clavier
    Par Floo dans le forum Assembleur
    Réponses: 5
    Dernier message: 03/12/2004, 17h04

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