Défilement

Signaler
Messages postés
2
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
15 décembre 2002
-
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003
-
J'ai pour dure mission de créer un casse-brique.Or j'ai commencé le C++ il y a a peine deux mois.Dans mon menu j'aimerai faire apparaitre du texte déroulant.Un peu comme dans le générique de fin d'un film.
Comment procéder pour obtenir ce déroulement de texte.
Merci d'avance à quiconque eclairera ma lanterne.Soyez gentil de ne pas me répondre en charabia :big)
Oesheutor

3 réponses

Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

salut,

tu veux le code en mode console sous DOS ?
Messages postés
2
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
15 décembre 2002

Oui si c'est possible.Mon programme doit tourner sous DOS avec des vieux pc qui ont fait la guerre.
En plus on m'a restreint l'utilisation des bibliothèques. mais bon si tu as une solution j'écoute attentivement.Merci à toi
Oesheutor
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

salut,

il est écrit avec turbo c++2 tourne également avec dev c++4
avec ce dernier il faut changer delay par sleep.
et il faut laisser des lignes vides en debut pour que le texte
commence de s'afficher du bas vers le haut


#include
#include <conio.h> //dev c++ #include <conio.c>
#include <stdio.h> // sprintf
#include <dos.h> // delay ou sleep pour ralentir le deffilement

char *texte[] = {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",

"pierre leroy ",
"sophie dubois ",
"jean durand ",
};

void defilement_texte(void);

int main(void) {

clrscr(); // effacer ecran
defilement_texte();
getch();

return 0;
} // fin de la fonction main

void defilement_texte(void) {

const int VITESSE_DEFFILEMENT = 100; // en millisecondes

// nombre de lignes maximum a l'ecran
const int nbre_lignes_ecran = 24;

// determiner le nombre d'elements dans le menu texte
int nbre_lignes = sizeof (texte) / sizeof(texte[0]);

char ligne_vide[80];
int col, ligne;
col = 10; // position de la colonne

// creer une ligne vide
sprintf(ligne_vide,"%80c",'\0');

for (int i1 = 0; i1 <= nbre_lignes; i1++) {

for (int i2 = 0; i2 < nbre_lignes_ecran ; i2++) {

ligne = (i2 % nbre_lignes_ecran);
gotoxy(col,1 + ligne);

// lignes vides pour faire disparaitre le texte
if ( (i1+ i2) >= nbre_lignes) {
texte[i1 + i2] = ligne_vide;
}

// afficher le texte
cout << texte[i1 + i2];

} // fin de for (i2...)

delay(VITESSE_DEFFILEMENT);

} // fin de for (i1...)

return ;

} // fin de la fonction defilement_texte