Défilement

Oesheutor Messages postés 2 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 15 décembre 2002 - 11 déc. 2002 à 23:56
cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003 - 16 déc. 2002 à 14:05
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

cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
12 déc. 2002 à 16:34
salut,

tu veux le code en mode console sous DOS ?
0
Oesheutor Messages postés 2 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 15 décembre 2002
15 déc. 2002 à 13:11
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
0
cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
16 déc. 2002 à 14:05
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
0
Rejoignez-nous