begin process at 2010 03 19 22:09:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > TETRIS / GRAPHIC.H / GESTION DE PALETTE VGHI 256 /

TETRIS / GRAPHIC.H / GESTION DE PALETTE VGHI 256 /


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :tetris, vghi, palette, jeu Niveau :Initié Date de création :11/07/2004 Vu / téléchargé :5 897 / 311

Auteur : equimose

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

TETRIS ? Ca sert a jouer. lol.
J'aime bien les application purement graphique. J'ai pondu un Tetris en attendant de partir dans des simulations purement mathémathiques.  
je vous montre ce que ca donne n'hésitez pas a réagir.

Source

  • #include <iostream.h>
  • #include <graphics.h>
  • #include <stdlib.h>
  • #include <stdio.h>
  • #include <conio.h>
  • #include <dos.h>
  • #include <time.h>
  • #include <string.h>
  • /*
  • #define Px 450
  • #define max 64
  • struct palettetype pal;
  • struct RGB
  • {
  • int R[16];
  • int G[16];
  • int B[16];
  • };
  • void Initgraph();
  • void GestionPalette(int Key);
  • void LoadPal(palettetype *pal,RGB *tab);
  • void Initgraph()
  • {
  • int gdriver = VGA, gmode = VGAHI, errorcode;
  • initgraph(&gdriver, &gmode, "");
  • errorcode = graphresult();
  • if (errorcode != grOk)
  • {
  • printf("Graphics error: %s\n", grapherrormsg(errorcode));
  • printf("Press any key to halt:");
  • getch();
  • exit(1);
  • }
  • }
  • */
  • void LoadPal(palettetype *pal,RGB *tab)
  • {
  • char Formechar[15];
  • //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • int R[16]={0 ,27,63,11,60,44,19,63,20,10,63, 0,63,6 ,63,63};
  • int G[16]={0 ,60, 0,60,11,27,38,63,20,10,63,63, 0,6 ,30,63};
  • int B[16]={0 ,63, 0,11,60, 1,63,21,20,10, 0,63,63,6 ,63,63};
  • for (int N=0;N<=15;N++)//copy dans la palette courante
  • {
  • tab->R[N]=R[N];
  • tab->G[N]=G[N];
  • tab->B[N]=B[N];
  • /*
  • setfillstyle(1,0);
  • setcolor(15);
  • bar(Px+31,29*N,Px+200,29*(N+1));
  • bar(Px+130,0,Px+220,480);
  • sprintf(Formechar,"{%d;%d;%d}",tab->R[N],tab->G[N],tab->B[N]);
  • outtextxy(31 +Px,+29*N, Formechar);
  • */
  • setrgbpalette(pal->colors[N],tab->R[N],tab->G[N],tab->B[N]);
  • /*
  • setfillstyle(SOLID_FILL, N);
  • bar(Px,29*N, Px+30, 29*(N+1));
  • */
  • }
  • }
  • void GestionPalette(int Key)
  • {
  • char Formechar[15];
  • RGB Temp;
  • int Couleur=0;
  • for (Couleur=0;Couleur<=15;Couleur++)
  • {
  • Temp.R[Couleur]=0;
  • Temp.G[Couleur]=0;
  • Temp.B[Couleur]=0;
  • }
  • Couleur=0;
  • getpalette(&pal);
  • do{
  • setfillstyle(1,Couleur);
  • while (!kbhit()) //attend une r,ponse
  • {}
  • if (Key!=108) {Key=getch();} //108 charge palette
  • switch(Key)
  • {
  • case 52: Temp.R[Couleur]++;
  • if (Temp.R[Couleur]==max) {Temp.R[Couleur]=0;};
  • setrgbpalette(pal.colors[Couleur],Temp.R[Couleur],Temp.G[Couleur],Temp.B[Couleur]);break;
  • case 53: Temp.G[Couleur]++;
  • if (Temp.G[Couleur]==max) {Temp.G[Couleur]=0;};
  • setrgbpalette(pal.colors[Couleur],Temp.R[Couleur],Temp.G[Couleur],Temp.B[Couleur]);break;
  • case 54: Temp.B[Couleur]++;
  • if (Temp.B[Couleur]==max) {Temp.B[Couleur]=0;};
  • setrgbpalette(pal.colors[Couleur],Temp.R[Couleur],Temp.G[Couleur],Temp.B[Couleur]);break;
  • case 43 : Couleur++;if (Couleur>=16) {Couleur=0 ;}break;//touche +
  • case 45 : Couleur--;if (Couleur<=-1) {Couleur=15;}break;//touche -
  • case 103:Temp.R[Couleur]++; ///touche G/niveau de gris
  • if (Temp.R[Couleur]==max) {Temp.R[Couleur]=0;};
  • Temp.G[Couleur]=Temp.R[Couleur];Temp.B[Couleur]=Temp.R[Couleur];
  • setrgbpalette(pal.colors[Couleur],Temp.R[Couleur],Temp.R[Couleur],Temp.R[Couleur]);
  • break;
  • case 108: LoadPal(&pal,&Temp); Key=32;break; //Touche L/
  • default:break;
  • }
  • setfillstyle(1,0);
  • setcolor(WHITE);
  • bar(Px+31,29*Couleur,Px+200,29*(Couleur+1));
  • bar(Px+130,0,Px+220,480);
  • sprintf(Formechar,"{%d;%d;%d}",Temp.R[Couleur],Temp.G[Couleur],Temp.B[Couleur]);outtextxy(31 +Px,+29*Couleur, Formechar);
  • sprintf(Formechar,"Col[%d]",Couleur);outtextxy(130+Px,29*Couleur, Formechar);
  • setfillstyle(SOLID_FILL, Couleur);
  • bar(Px,29*Couleur, Px+30, 29*(Couleur+1));
  • }while(Key!=32);
  • setfillstyle(1,0);
  • bar(Px,0,Px+300,480); //efface la palette
  • }
  • /*
  • void main()
  • {
  • Initgraph();
  • GestionPalette(0);
  • }
  • */
#include <iostream.h>
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <time.h>
#include <string.h>


/*
#define Px  450
#define max 64

struct palettetype pal;
struct RGB
	{
	int R[16];
	int G[16];
	int B[16];
	};


void Initgraph();
void GestionPalette(int Key);
void LoadPal(palettetype *pal,RGB *tab);


void Initgraph()
{
     int gdriver = VGA, gmode = VGAHI, errorcode;
     initgraph(&gdriver, &gmode, "");


     errorcode = graphresult();
     if (errorcode != grOk)
     {
	printf("Graphics error: %s\n", grapherrormsg(errorcode));
	printf("Press any key to halt:");
	getch();
	exit(1);
     }

}
*/


void LoadPal(palettetype *pal,RGB *tab)
{
char Formechar[15];
	  //0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
int R[16]={0 ,27,63,11,60,44,19,63,20,10,63, 0,63,6 ,63,63};
int G[16]={0 ,60, 0,60,11,27,38,63,20,10,63,63, 0,6 ,30,63};
int B[16]={0 ,63, 0,11,60, 1,63,21,20,10, 0,63,63,6 ,63,63};

for (int N=0;N<=15;N++)//copy dans la palette courante
  {
  tab->R[N]=R[N];
  tab->G[N]=G[N];
  tab->B[N]=B[N];


  /*
  setfillstyle(1,0);
  setcolor(15);
  bar(Px+31,29*N,Px+200,29*(N+1));
  bar(Px+130,0,Px+220,480);
  sprintf(Formechar,"{%d;%d;%d}",tab->R[N],tab->G[N],tab->B[N]);
  outtextxy(31 +Px,+29*N, Formechar);
  */
  setrgbpalette(pal->colors[N],tab->R[N],tab->G[N],tab->B[N]);
  /*
  setfillstyle(SOLID_FILL, N);
  bar(Px,29*N, Px+30, 29*(N+1));
  */
  }

}


void GestionPalette(int Key)
{

   char Formechar[15];
   RGB Temp;
   int Couleur=0;

   for (Couleur=0;Couleur<=15;Couleur++)
	{
	Temp.R[Couleur]=0;
	Temp.G[Couleur]=0;
	Temp.B[Couleur]=0;
	}


   Couleur=0;


 getpalette(&pal);

do{
  setfillstyle(1,Couleur);

    while (!kbhit()) //attend une r,ponse
    {}

    if (Key!=108) {Key=getch();} //108 charge palette


    switch(Key)
    {
    case 52: Temp.R[Couleur]++;
	     if (Temp.R[Couleur]==max) {Temp.R[Couleur]=0;};
	     setrgbpalette(pal.colors[Couleur],Temp.R[Couleur],Temp.G[Couleur],Temp.B[Couleur]);break;

    case 53: Temp.G[Couleur]++;
	     if (Temp.G[Couleur]==max) {Temp.G[Couleur]=0;};
	     setrgbpalette(pal.colors[Couleur],Temp.R[Couleur],Temp.G[Couleur],Temp.B[Couleur]);break;

    case 54: Temp.B[Couleur]++;
	     if (Temp.B[Couleur]==max) {Temp.B[Couleur]=0;};
	     setrgbpalette(pal.colors[Couleur],Temp.R[Couleur],Temp.G[Couleur],Temp.B[Couleur]);break;

    case 43 : Couleur++;if (Couleur>=16) {Couleur=0 ;}break;//touche +
    case 45 : Couleur--;if (Couleur<=-1) {Couleur=15;}break;//touche -


    case 103:Temp.R[Couleur]++; ///touche G/niveau de gris
	     if (Temp.R[Couleur]==max) {Temp.R[Couleur]=0;};
	     Temp.G[Couleur]=Temp.R[Couleur];Temp.B[Couleur]=Temp.R[Couleur];
	     setrgbpalette(pal.colors[Couleur],Temp.R[Couleur],Temp.R[Couleur],Temp.R[Couleur]);
	     break;


    case 108:  LoadPal(&pal,&Temp); Key=32;break; //Touche L/


    default:break;
    }

    setfillstyle(1,0);
    setcolor(WHITE);

    bar(Px+31,29*Couleur,Px+200,29*(Couleur+1));
    bar(Px+130,0,Px+220,480);

    sprintf(Formechar,"{%d;%d;%d}",Temp.R[Couleur],Temp.G[Couleur],Temp.B[Couleur]);outtextxy(31 +Px,+29*Couleur, Formechar);
    sprintf(Formechar,"Col[%d]",Couleur);outtextxy(130+Px,29*Couleur, Formechar);


    setfillstyle(SOLID_FILL, Couleur);
    bar(Px,29*Couleur, Px+30, 29*(Couleur+1));


  }while(Key!=32);


setfillstyle(1,0);
bar(Px,0,Px+300,480);    //efface la palette
}


/*
void main()
{
Initgraph();
GestionPalette(0);

}
*/

 Conclusion

Bon bin voila un outil pour modifié la palette RGB en cour...
virer les /**/ pour compiler  
bon ya un truc pas propre, ca le ferrais si kelkun pouvais donner un tuyau.
j'ai crée une structure RGB temporaire pour les changement de couleur.
je sais pas comment les RGB sont convertis en char par setrgbpalette.  
Il n'y a que 64 niveau de gris !!!!
or 256 / 4 = 64 ou sont les 64 couleur restantes ???
il doit y avoir une histoire d'hexa la dessous. bo je travail dessus.si kelkun peu m'éclairer.

A part ca le tetris est beau.
Mais fodrai gerrer le tableau[254] dynamiquement.
voila ya pas de bug évident.  
bon jeu. amusez vous bien. bon ++  */

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture COMBOBOX DANS LA TOOLBAR
Source avec Zip PERSPECTIVE MFC / SDI TRACER DES PERSPECTIVES (INTERFACE UT...
Source avec Zip VECTEUR : LANCER DE RAYON. ENFIN VITE FAIT
Source avec Zip SIMULATION DE BILLES
Source avec Zip JEU DU SNAKE

 Sources de la même categorie

JEU DU PENDU !!!! VERSION SIMPLIFIÉE ET FACILE par seyidleite
Source avec Zip PUISSANCE 4 EN SDL, AVEC SAUVEGARDE , JOUEUR VS JOUEUR OU IA... par diablosephiroth
Source avec Zip Source avec une capture TETRIS 1.0 (C & SDL) par c1702
Source avec Zip Source avec une capture LE PENDU (PAR CRAZYGOODBOY) par CrazyGoodBoy
Source avec Zip Source avec une capture PLUS OU MOINS par antho974

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TETRIS EN C++ AVEC LA SDL par guitariste2
Source avec Zip Source avec une capture JEU DE TETRIX [WIN32][VC++7][SANS MFC][FMOD] par max12
Source avec Zip ESSAI D'UN TETRIS AVEC OPENGL par anthonygiroud
Source avec Zip TETRIS 2D AVEC SDL par grecoriz
Source avec Zip Source avec une capture TETRIS (MODE CMUGRAPHICS) par Pistol_Pete

Commentaires et avis

Commentaire de temoin le 19/07/2004 05:19:33

fatal error C1083: Cannot open include file: 'graphics.h'
veux pas compiler ni avec c++5 et dev 6.0

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Créer un jeu vidéo... [ par Crepuscule3 ] Bonjour à tous,   J'ai quelques compétences en C/C++ et je souhaiterai apprendre à créer un jeu vidéo. Je sais... certains ne vont pas pouvoir s'empêc Programation de jeu avec Game Studio 6 [ par anarchiste987 ] Bonjour a tous, ce que je demande est peu être simple pour vous,mais pour moi ... c'est un probleme de taille Je vais aller droit au but :J'ai besoin Collision entre objets 3D [ par mmaximum ] Salut à tous,Je suis nouveau sur le forum. Je sais déja bien programmé(c/c++, python, xhtml/html, css, javascript,...)Je suis en train de développer u Jeu de simulation véhicules L'AUTOROUTE [ par AutorouteGame ] Comme indique le titre , notre Team est entrain de développer un jeu vidéo libre (open source) et gratuit.Afin de réussir cette jeu, nous avons beso comment utiliser ALSA pour débutant [ par mmaximum ] Salut à tous,Je développe un jeu de tir 3D en C++ avec son moteur de jeu.Les seuls librairies qu j'utilise son SDL, OpenGL et GLU. Pour le physique et tetris en SDL [ par fahdovski ] Bonjour,   je code tetris en C avec la SDL voici mon problemevoid creerlachute(tab t){int i,j;for (i=0;i&lt;li;i++)      for(j=0;j&lt;co;j++){  if (t[


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,326 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales