huben | Bonjour je m'amuse a developper un petit jeu (pourri) et qui tourne a peu pres bien sur un 2.4 GHZ mais ramme des qu'on descend, je pense que c'est du au fait que j'utilise une boucle pour generer l'image , en gros l'image est générée moins souvent et donc sa rame
je saispas si vous avez d'autres solutions...
voici mon code
Code :
- #include <allegro.h>
- int point=0;
- int i=0;
- int Ltemp=0;
- int L=0;
- int H=200;
- int L2=1024;
- int H2=500;
- int L3=512;
- int H3=-500;
- int L4=0;
- int H4=0;
- int L5=400;
- int H5=20;
- int rayon=50;
- int rayon2=5;
- int rayon3=30;
-
- void rects(int a,int b,int c,int d,int cl1,int cl2,int cl3,struct BITMAP *bmp,int rempl)
- {
- rect(bmp,a,b,c,d,makecol(cl1,cl2,cl3));
-
- if(mouse_x>a&&mouse_x<c&&mouse_y<d&&mouse_y>b)point--;
-
- }
- void rectspb(int a,int b,int c,int d,int cl1,int cl2,int cl3,struct BITMAP *bmp,int rempl)
- {
- rectfill(bmp,a,b,c,d,makecol(cl1,cl2,cl3));
-
- if(mouse_x>a&&mouse_x<c&&mouse_y<d&&mouse_y>b&&mouse_b==1)point=point-10;
- if(mouse_x>a&&mouse_x<c&&mouse_y<d&&mouse_y>b&&mouse_b==2)point=point-10;
- if(mouse_x>a&&mouse_x<c&&mouse_y<d&&mouse_y>b&&mouse_b==0)point=point-10;
- }
- void rectspr(int a,int b,int c,int d,int cl1,int cl2,int cl3,struct BITMAP *bmp,int rempl)
- {
- rectfill(bmp,a,b,c,d,makecol(cl1,cl2,cl3));
-
- if(mouse_x>a&&mouse_x<c&&mouse_y<d&&mouse_y>b&&mouse_b==1)point--;
- if(mouse_x>a&&mouse_x<c&&mouse_y<d&&mouse_y>b&&mouse_b==2)point=point+2;
- }
- void grosrect(int a,int b,int c,int d,struct BITMAP *bmp)
- {
- rect(bmp,a,b,c,d,makecol(200,0,100)); //TRACE rectangle ext
- if(mouse_x<a)point--;//si souris hors rectangle alors un point en moins
- if(mouse_x>c)point--;//-
- if(mouse_y<b )point--;//-
- if(mouse_y>d)point--;//-
- }
- void rectangles(struct BITMAP *final)
- {
- grosrect(102,77,922,691,final);
- grosrect(100,75,924,693,final);
- rects(130,90,160,370,200,100,0,final,makecol(20,20,20));
- rects(300,90,330,400,200,100,0,final,makecol(20,20,20));
- rects(750,358,792,462,200,100,0,final,makecol(20,20,20));
- rects(600,90,650,400,200,100,0,final,makecol(20,20,20));
- rects(550,400,580,700,200,100,0,final,makecol(20,20,20));
- rects(212,500,232,624,200,100,0,final,makecol(20,20,20));
- rects(130,420,426,450,200,100,0,final,makecol(20,20,20));
- rectspb(L,H,L+rayon3,H+rayon3,0,50,255,final,makecol(0,50,255));
- rectspb(L5,H5,L5+rayon3,H5+rayon3,0,50,255,final,makecol(0,0,255));
- rectspr(L2,H2,L2+rayon3,H2+rayon3,255,50,50,final,makecol(200,50,50));
- rectspr(L3,H3,L3+rayon3,H3+rayon3,255,50,50,final,makecol(200,50,50));
- rectspr(L4,H4,L4+rayon3,H4+rayon3,255,50,50,final,makecol(200,50,50));
- }
-
- void souris(int maxm,int maxp,struct BITMAP *final,int ca,int cb)
- {
- if (mouse_b==0) //souris
- {
- circle(final,mouse_x,mouse_y,rayon,ca);
- circlefill(final,mouse_x,mouse_y,rayon2,cb);
- }
-
- if (mouse_b==1)circlefill(final,mouse_x,mouse_y,rayon2,makecol(0,0,255));//clics
- if (mouse_b==2)circlefill(final,mouse_x,mouse_y,rayon2,makecol(255,0,0));//-
- }
- void depl()
- {
- srand(time(NULL));
- L=L+15;
- if(L>922){L=rand()%512;H=rand()%768;}
- if(L2<75){L2=rand()%512;H2=rand()%768;}
- if(H3>691){L3=rand()%512;H3=rand()%768;}
- L2=L2-15;
- H3=H3+12;
- H4=H4+10;
- L4=L4+10;
- H5=H5+5;
- L5=L5+5;
- }
-
- void txt(struct BITMAP *final)
- {
- textout(final,font,"Ceci est la version C.05 (C comme constrution )du Mazeshoot.Projet secret developpé par B.A.S.",5,30,makecol(255,255,200));
- textout(final,font,"Utilisez la souris pour faire bouger le rond.",12,40,makecol(0,200,100));
- textout(final,font,"Cliquez avec le bouton gauche pour rendre le rond bleu, le bouton droit pour le rendre rouge et echap pour quitter",12,50,makecol(0,200,100));
- textout(final,font,"Tirez en rouge sur, devinez quoi...les carres rouges,ils rapportent 2 points, ne vous trompez pas!!",12,60,makecol(0,200,100));
- textout(final,font,"ATTENTION, les carrés bleus sont méchants ils vous font perdre 10 points a chaque contact",12,70,makecol(255,0,100));
- if(point<0) textout(final,font,"T'ention,les carrés bleus, les rectangles gris et les sorties enlevent des points!",12,100,makecol(255,0,50));
- textprintf(final,font,120,750,makecol(10,200,255),"nombre de points: %d",point);//on affiche le nb de points
- }
- int main () //MAIN FUNCTION
- {
-
- BITMAP*final; // création du bitmap final
- allegro_init (); // initialisation d'allegro
- install_keyboard (); //initialisation du clavier
- set_gfx_mode (GFX_AUTODETECT,1024,768,0,0); // mode graphique et taille de l'écran
- set_color_depth(32);
- install_mouse();
- final = create_bitmap (1024,768); // configauration du bitmap final
- set_mouse_speed(3,3);
-
- while (key[KEY_ESC]==0) // tant que l'on appuie pas sur échap
- { i=i+3;
- clear_bitmap (final);
- txt(final);
- rectangles(final); //Tracage des rectangles...
- souris(-10,10,final,makecol(200,255,50),makecol(200,100,50));
- depl();
- blit(final,screen,0,0,0,0,1024,768);//on envoie le bo*** a l'ecran
-
- }//et on recomence
-
- destroy_bitmap (final);// on détruit le bitmap
- allegro_exit (); // on quitte allegro
- return 0;
- }
- END_OF_MAIN();
|
voila, je résume, je crée mon image avec une série de fonctions que je définit avant
merci de votre aide Message édité par huben le 01-10-2005 à 15:00:55
|