razorbak83 achetez pgeo en plus c'est bô | Bonjour à tous, et bonnes fêtes de fin d'année !!!
bon voila c'est pour un projet en C:
à la base, je voulais refaire un 'tit jeu à la , merde me souvient plus du nom po grave, je vais expliquer, si vous vous souvenez du nom, donnez le principe est tout con : une baballe qui se promene sur l'ecran, et on cherche à l'enfermer ds une zone la plus petite possible .... etc, on rajoute des balles etc ...
je pense que vous avez compris le principe
voila mon code :
Code :
- #include <graphics.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <conio.h>
- #define startx 150 //}position de depart de la balle
- #define starty 200 //}
- #define minx 4 //}
- #define miny 4 //}valeur max et min des coordonn?es
- #define maxx 475 //}du centre de la balle
- #define maxy 475 //}
- //declaration des fonctions:
- void init(void);
- void balle(int mx, int my);
- void effballe(int mx,int my);
- void moveL_G_D(int *x,int *y, char *vmove, char *hmove);
- void moveL_D_G(int *x,int *y, char *vmove, char *hmove);
- void moveH_D_G(int *x, int *y, char *vmove, char *hmove);
- void moveH_G_D(int *x, int *y, char *vmove, char *hmove);
- //Debut du programme principal:
- void main(void)
- {
- char hmove, vmove;
- int x,y,i;
- x=startx; //position en x au depart de la balle
- y=starty; //position en y au depart de la balle
- hmove=' '; //mouvement precedent 'nul'
- vmove=' '; //idem
- printf("La balle part de la position: x=%d y=%d",x,y);
- getch();
- init();
- moveH_G_D(&x,&y,&vmove,&hmove); //mouvement de depart de la balle
- for(i=0;i<10;i++)
- {
- switch(vmove)
- {
- case 'L': //la balle vient du haut (elle descendait)
- {
- switch(hmove)
- {
- case 'D': //balle descend de G->D
- {
- if (x==475)
- moveL_D_G(&x,&y,&vmove,&hmove);
- else
- if (y==475)
- moveH_G_D(&x,&y,&vmove,&hmove);
- }
- break;
- case 'G': //balle descend de D->G
- {
- if (x==4)
- moveL_G_D(&x,&y,&vmove,&hmove);
- else
- if (y==475)
- moveH_D_G(&x,&y,&vmove,&hmove);
- }
- break;
- }
- }
- break;
- case 'H': //la balle vient du bas (elle montait)
- {
- switch(hmove)
- {
- case 'G': //balle monte de D->G
- {
- if (x==4)
- moveH_G_D(&x,&y,&vmove,&hmove);
- else
- if (y==4)
- moveL_D_G(&x,&y,&vmove,&hmove);
- }
- break;
- case 'D': //balle monte de G->D
- {
- if (x==475)
- moveH_D_G(&x,&y,&vmove,&hmove);
- else
- if (y==4)
- moveL_G_D(&x,&y,&vmove,&hmove);
- }
- break;
- }
- }
- break;
- }
- }
- getch();
- closegraph();
- }
- // initialisation de l'affichage et tracé de la zone de jeu:
- void init(void)
- {
- /* request auto detection */
- int gdriver = DETECT, gmode, errorcode;
- /* initialize graphics and local variables */
- initgraph(&gdriver, &gmode, "" );
- /* read result of initialization */
- errorcode = graphresult();
- if (errorcode != grOk) /* an error occurred */
- {
- printf("Graphics error: %s\n", grapherrormsg(errorcode));
- printf("Press any key to halt:" );
- getch();
- exit(1); /* terminate with an error code */
- }
- /* dessin de l'aire de jeu */
- setcolor(RED);
- rectangle(0,0,480,479);
- }
- // tracé de la balle:
- void balle(int mx,int my)
- {
- int stangle = 0, endangle = 360, radius = 3;
- /* set fill style and draw a pie slice */
- setcolor(BLUE);
- setfillstyle(SOLID_FILL, BLUE);
- pieslice(mx, my, stangle, endangle, radius);
- }
- // effacement de la balle:
- void effballe(int mx,int my)
- {
- int stangle = 0, endangle = 360, radius = 3;
- setcolor(BLACK);
- /* set fill style and draw a pie slice */
- setfillstyle(SOLID_FILL, BLACK);
- pieslice(mx, my, stangle, endangle, radius);
- }
- // mouvement de descente de la balle, de gauche à droite:
- void moveL_G_D(int *x,int *y, char *vmove, char *hmove)
- {
- double j;
- *vmove='L'; //la balle descend
- *hmove='D'; // et va de G->D
- while(*x<maxx & *y<maxy)
- {
- (*x)++;
- (*y)++;
- for(j=0;j<100000;j++){;} // tempo
- effballe(*x-1,*y-1);
- balle(*x,*y);
- }
- }
- // mouvement de descente de la balle, de droite à gauche:
- void moveL_D_G(int *x,int *y, char *vmove, char *hmove)
- {
- double j;
- *vmove='L';
- *hmove='G';
- while(*x>minx & *y<maxy)
- {
- (*x)--;
- (*y)++;
- for(j=0;j<100000;j++){;} // tempo
- effballe(*x+1,*y-1);
- balle(*x,*y);
- }
- }
- // mouvement de mont?e de la balle, de droite à gauche:
- void moveH_D_G(int *x, int *y, char *vmove, char *hmove)
- {
- double j;
- *vmove='H';
- *hmove='G';
- while(*x>minx & *y>miny)
- {
- (*x)--;
- (*y)--;
- for(j=0;j<100000;j++){;} // tempo
- effballe(*x+1,*y+1);
- balle(*x,*y);
- }
- }
- // mouvement de mont?e de la balle, de gauche à droite:
- void moveH_G_D(int *x, int *y, char *vmove, char *hmove)
- {
- double j;
- *vmove='H';
- *hmove='D';
- while(*x<maxx & *y>miny)
- {
- (*x)++;
- (*y)--;
- for(j=0;j<100000;j++){;} // tempo
- effballe(*x-1,*y+1);
- balle(*x,*y);
- }
- }
|
si vous avez des critiques, ameliorations possible(ce dont je ne doute pas ) allez y gaiement
ça ne sera que mieux pour moi
donc je resume, j'ai simplement animé ma balle pour l'instant, enfin animé c'est un bien grant mot, compilez en vous verez ce que ça donne
je pas trop mecontent de moi, mais le probleme qui se pose maintenant, c'est que je sais plus ou inserer du code pour gerer le clavier et faire deplacer un curseur pour creer une barre et ainsi rediure l'espace de la balle ...
à vos idées chers amis
PS: si j'ai po été clair sur quelque chose, dites le, je vais essayer de faire plus simple
[edit:] j'ai oublié de preciser que tout le code devait etre compatible TC 2.0, en gros du C le plus basique possible
Message édité par razorbak83 le 27-12-2002 à 14:55:58 ---------------
powered by 1700+ JIUHB 0251 F @ 2450 / 1.74v :ange: et rock stable !!!! :sol:
|