Effets d'affichages 1 mode graphique dos turbo c++2

Description


Source / Exemple :


//  PROGRAMME EN C SOUS DOS TURBO C++2 BORLAND
//  ecrit le 18-06-2002 par cmarsc
//  EFFETS D'AFFICHAGES MODE GRAPHIQUE

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>

#define FOND_ECRAN BLACK

int initialiser_mode_graphique (void);

void entree_clavier (void);
void box(int x1, int y1,int x2, int y2, int coul_fond,int coul_bord);
void message (int x1, int y1, int coul_texte,char *texte, int taille_texte);

void effet_cadre1 (int x1, int y1,int x2, int y2, int couleur);
void effet_cadre2 (int x1, int y1,int x2, int y2, int couleur);
void effet_cadre3 (int x1, int y1,int x2, int y2, int couleur);
void effet_cadre4 (int x1, int y1,int x2, int y2, int couleur);
void effet_cadre5 (int x1, int y1,int x2, int y2, int couleur);

int main(void)
{

   initialiser_mode_graphique();

   // cadre vert haut   

// x1 = 1  y1 = 1  x2 = max  y2 = 30 coul_fond rouge coul_bord violet
   box(1,1, getmaxx(), 30, 1  , LIGHTBLUE);

// x1 = 10  y1 = 3  coul_fond = vert  texte   taille_texte = 7
message(10,3, LIGHTCYAN, "ENTREZ UN CHIFFRE ENTRE 1 ET 5", 7);
message(505,3, LIGHTRED, "ESC QUITTER", 7);

   // grand cadre noir avec un bord violet
   box(1,35, getmaxx(), getmaxy(), FOND_ECRAN,LIGHTBLUE);

   entree_clavier();
   return 0;
}

int initialiser_mode_graphique(void) {

   // detection automatique du mode video
   int gdriver = DETECT, gmode, errorcode;

// initialiser le mode graphique
   initgraph(&gdriver, &gmode, "c:\\tc\\bgi");

   errorcode = graphresult();

// tester si une erreur se produit
   if (errorcode != grOk)
   {
	  printf("ERREUR : %s\n", grapherrormsg(errorcode));
	  printf("Appuyez sur une touche :");
	  getch();
	  exit(1);
   }

return 0;

} // fin de la fonction initialiser_mode_graphique

void box(int x1, int y1,int x2, int y2, int coul_fond,int coul_bord) {

	 int i1;
	 // rectangle en couleur
	 setfillstyle(SOLID_FILL,coul_fond);
	 bar (x1, y1, x2, y2);

	 setcolor(coul_bord);
	 // dessiner un rectangle avec un effet de relief 3
	 for (i1 = 0; i1 < 3; i1++) {
		rectangle (x1+i1, y1+i1, x2-i1 ,  y2-i1);
	 }

	 setcolor(WHITE);
	 // cadre blanc
	 rectangle (x1+1, y1+1, x2-1, y2-1);

return ;
} // fin de la fonction box

void message(int x1, int y1, int coul_texte, char *texte, int taille_texte) {

	 // afficher un message avec differentes tailles
	 // de caracteres
	 int i;
	 settextstyle(SMALL_FONT, HORIZ_DIR,taille_texte);

	 // faire un effet d'ombre
	 setcolor(BLACK);
	 for (i = 0; i< 4;i++) {
	   outtextxy(x1+ 1, y1 + i, texte);
	 }

	 // texte en avant plan
	 setcolor(coul_texte);
	 outtextxy(x1,y1, texte);

return ;
}

void entree_clavier(void) {

	 char votre_choix;
while(1) {	    // TAPER ESC POUR SORTIR

	votre_choix = getch();

	switch (votre_choix) {
	case '1':

	   //  x1 = 50  y1 = 45  x2 = 600 y2  = 450  couleur = vert
		effet_cadre1(50, 45,600, 450, CYAN);
		sleep(1); // effacer avec le meme effet
		effet_cadre1(50, 45,600, 450, FOND_ECRAN);
		break;

	case '2':

	   //  x1 = 10   y1 =105  x2 = 500 y2 = 450  couleur = rouge vif
		effet_cadre2(10,105,500,450, LIGHTRED);
		sleep(1); // effacer avec le meme effet
		effet_cadre2(10,105,500,450, FOND_ECRAN);
		break;

	case '3':

	   //  x1 = 105  y1 = 75  x2 = 500 y2 = 450  couleur = vert
		effet_cadre3(105, 75, 500, 450, GREEN);
		sleep(1); // effacer avec le meme effet
		effet_cadre3(105, 75, 500, 450, FOND_ECRAN);
		break;

	case '4':

	   //  x1 = 150  y1 = 45  x2 = 600 y2 = 400  couleur = jaune
		effet_cadre4(150,145, 600, 400, YELLOW);
		sleep(1); // effacer avec le meme effet
		effet_cadre4(150,145, 600, 400, FOND_ECRAN);
		break;

	case '5':

	   //  x1 = 15  y1 = 45  x2 = 630 y2 = 450  couleur = violet
		effet_cadre5(15, 45, 630, 450, LIGHTBLUE);
		sleep(1); // effacer avec le meme effet
		effet_cadre5(15, 45, 630, 450, FOND_ECRAN);
		break;

	 case 27:     // fin du programme
		closegraph();    // fin mode graphique
		exit(0);
		break;

	 default:

		break;
	 } // fin de switch

} // fin de while(1)
// return ;
} // fin de la fonction entree_clavier

void effet_cadre1(int x1, int y1,int x2, int y2, int couleur) {

	// afficher du haut en bas

	int i1;
	setcolor(couleur);
	for (i1 = 0; (y1 + i1)  <= y2; i1++) {
	   rectangle (x1, y1, x2, y1 + i1);
	}

return ;
} // fin de la fonction effet_cadre1

void effet_cadre2(int x1, int y1,int x2, int y2, int couleur) {

	// afficher de bas en haut

	int i1;
	setcolor(couleur);
	for (i1 = 0; (y2 - i1)  >= y1; i1++ ) {
	   rectangle (x1, y2 - i1, x2, y2);
	}

return ;
} // fin de la fonction effet_cadre2

void effet_cadre3(int x1, int y1,int x2, int y2, int couleur) {

	// afficher de gauche vers la droite

	int i1;
	setcolor(couleur);
	for (i1 = 0; (x1 + i1) <= x2; i1++) {
	   rectangle (x1, y1, x1+i1, y2);
	}

return ;
} // fin de la fonction effet_cadre3

void effet_cadre4(int x1, int y1,int x2, int y2, int couleur) {

	// afficher de la droite vers la gauche

	int i1;
	setcolor(couleur);
	for (i1 = 0; (x2 - i1) >= x1; i1 ++) {
	   rectangle (x2 - i1, y1, x2, y2);
	}

return ;
} // fin de la fonction effet_cadre4

void effet_cadre5(int x1, int y1,int x2, int y2, int couleur) {

	// afficher du milieu vers les cotes

	int i1, i2;
	float milieu_x,milieu_y;

	// calculer le centre de la figure
	milieu_x = x1 + ((x2 - x1) / 2);
	milieu_y = y1 + ((y2 - y1) / 2);

	setcolor(couleur);
	for (i1 = 0, i2 = 0; (milieu_y+i1 >= y1) && (milieu_x -i2 >= x1); ) {

	   if (milieu_y -i1 >= y1) i1 ++;
	   if (milieu_x -i2 >= x1) i2 ++;
	   rectangle (milieu_x-i2, milieu_y -i1, milieu_x + i2 , milieu_y+i1);
	}

return ;
} // fin de la fonction effet_cadre5

Conclusion :


// PROGRAMME EN C SOUS DOS TURBO C++2 BORLAND
// ecrit le 18-06-2002 par cmarsc
// EFFETS D'AFFICHAGES MODE GRAPHIQUE

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.