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 :

Serpent : procédure d'affichage


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 2
    Par défaut Serpent : procédure d'affichage
    Bonjour,

    Je suis un débutant en C++ ...

    J'aimerais réaliser un jeu en C++ et plus particulièrement le jeu du serpent ... Seulement voilà, j'aimerais savoir comment m'y prendre pour avoir un écran noir avec lequel je pourrais interagir au moyen de mon clavier avec les touches "o, k, l, m" par exemple.
    Je recherche pas du tout quelque chose de joli ... un bête écran noir sur lequel je ferai se ballader une chaîne de caractère représentant mon serpent ...

    Quelqu'un peut-il me proposer une procédure simple pour déjà disposer de cela avant de me lancer dans le reste ?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    C'est de la saisie de touche au vol, ça.
    Il n'y a rien en C++ standard pour faire cela : Tu dois utiliser des bibliothèques externes ou l'API de ton système.

    Et ça, ce n'est hélas pas pour ceux qui débutent.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    SDL fera l'affaire.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    +1 pour SDL.
    Mais bon, si tu veux un petit truc rapide qui fonctionne sans te casser la tête, il y a moyen de faire du non portable.
    Sous windows tu devrais pouvoir utiliser la commande keyhit() (ou un truc qui y ressemble) pour savoir si l'utilisateur a appuyé sur une touche sans bloquer le programme. Puis tu peux aussi effacer l'écran en utilisant system("clrscr") (encore une fois, ou un truc qui ressemble). Sous linux il y a ncurse qui doit se trouver sur pratiquement tous les systèmes. Va falloir faire une ou deux recherches mais avec ça + les fonctions standard du C on peut obtenir quelque chose qui fonctionne.

  5. #5
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Salut j'ai moi eu à réaliser une variante du jeu du serpent en cours (réalisée sous windows et dans la console)

    Pour ce qui est de la saisie de touche j'ai utilisé la fonction "getch()" qui scrute un caractère et un seul. Le caractère n'est même pas affiché.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include <conio.h>
     
    char saisie;
    saisie = getch();
    Pour scruter seulement certaines touches, j'ai mis ça dans une boucle testant le caractère récupéré et bouclant tant que ça n'était pas la ou les lettre(s) voulue(s).

    Pour ce qui est de la console, j'ai utilisé la commande qui la purge (cls) avec la fonction system :
    On peut d'ailleurs utiliser n'importe quelle commande de la console, j'en ai profité pour utiliser aussi "color" qui permet de changer la couleur de fond et du texte.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Le désavantage de getch() est qu'il est bloquant. Donc ton jeu ne peut pas bouger tant que tu n'appuies pas sur une touche. Avec keyhit() le "serpent" pourrait continuer d'avancer tout seul et changer de direction uniquement quand tu appuies sur une touche.

Discussions similaires

  1. Procédure stockée & Affichage des données
    Par Lynchée dans le forum ASP.NET
    Réponses: 3
    Dernier message: 17/06/2013, 15h40
  2. Comment lancer une procédure après affichage d'une form
    Par Fouinard dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 29/10/2008, 09h52
  3. Réponses: 5
    Dernier message: 10/11/2007, 10h20
  4. [MySQL] Affichage résultat procédure stockée
    Par Machjaghjolu dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/06/2007, 14h41
  5. Réponses: 7
    Dernier message: 04/04/2007, 15h18

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