SHARE
TWEET

Untitled

a guest Apr 22nd, 2019 50 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <allegro.h>
  4. #include <time.h>
  5.  
  6.  
  7. typedef struct ennemi
  8. {
  9.     int x;
  10.     int y;
  11.     int ty;
  12.     int tx;
  13.     int dy;
  14.  
  15. }t_ennemi;
  16.  
  17. BITMAP * load_bitmap_check(char *nomImage)
  18. {
  19.     BITMAP *bmp;
  20.     bmp=load_bitmap(nomImage,NULL);
  21.     if (!bmp)
  22.     {
  23.         allegro_message("pas pu trouver %s",nomImage);
  24.         exit(EXIT_FAILURE);
  25.     }
  26.     return bmp;
  27. }
  28.  
  29. int main()
  30. {
  31.     int i=0, j=0, k=0, l=0, m=0, n=0;
  32.     int booleen, cpt=0;
  33.  
  34.     BITMAP *page;
  35.     BITMAP *decor;
  36.     BITMAP *ennemi;
  37.  
  38.     t_ennemi cible[10];
  39.  
  40.     srand(time(NULL));
  41.  
  42.     int screenx;
  43.     int depscreenx=2;
  44.  
  45.     for(i=0; i<6; i++)
  46.     {
  47.         cible[i].x=(rand()%(((2000)-1400)+1)+1400)+i*200;
  48.         cible[i].y=rand()%500;
  49.     }
  50.  
  51.     for(k=6; k<10; k++)
  52.     {
  53.         cible[k].x=(rand()%(((2000)-1400)+1)+1400)+k*150;
  54.         cible[k].y=rand()%500;
  55.     }
  56.  
  57.     allegro_init();
  58.     install_keyboard();
  59.     install_mouse();
  60.  
  61.     set_color_depth(desktop_color_depth());
  62.     if (set_gfx_mode(GFX_AUTODETECT_WINDOWED,1300,700,0,0)!=0)
  63.     {
  64.         allegro_message("prb gfx mode");
  65.         allegro_exit();
  66.         exit(EXIT_FAILURE);
  67.     }
  68.  
  69.     show_mouse(screen);
  70.  
  71.     page=create_bitmap(SCREEN_W,SCREEN_H);
  72.     clear_bitmap(page);
  73.  
  74.     decor=load_bitmap_check("images/fond2.bmp");
  75.  
  76.     ennemi=load_bitmap_check("images/mangemort2.bmp");
  77.  
  78.     for(m=0; m<10; m++)
  79.     {
  80.         cible[m].tx = ennemi->w;
  81.         cible[m].ty = ennemi->h;
  82.  
  83.     }
  84.  
  85.     while (!key[KEY_ESC])
  86.     {
  87.         booleen=0;
  88.         screenx=screenx+depscreenx;
  89.  
  90.         if(screenx>=decor->w)
  91.             screenx=0;
  92.  
  93.         if(screenx+SCREEN_W<decor->w)
  94.             blit(decor, page, screenx, 0,0,0, SCREEN_W, SCREEN_H);
  95.  
  96.         else
  97.         {
  98.             blit(decor,page,screenx,0,0,0,decor->w, SCREEN_H);
  99.             blit(decor, page, 0,0,decor->w-screenx,0,SCREEN_W-(decor->w-screenx), SCREEN_H);
  100.         }
  101.  
  102.  
  103.         for(j=0;j<6;j++)
  104.             {
  105.                 draw_sprite(page, ennemi, cible[j].x, cible[j].y);
  106.  
  107.         if(cible[j].x<-170)
  108.             {
  109.                 cible[j].x=SCREEN_W+150;
  110.             }
  111.  
  112.             cible[j].x=cible[j].x-4;
  113.             }
  114.  
  115.         for(l=6;l<10;l++)
  116.             {
  117.             if(rand()%20==0)
  118.                 {
  119.                     cible[l].dy =rand()%11-5;
  120.                 }
  121.  
  122.             draw_sprite(page, ennemi, cible[l].x, cible[l].y);
  123.  
  124.             if(cible[l].x<-170)
  125.             {
  126.                 cible[l].x=SCREEN_W+150;
  127.             }
  128.  
  129.             if((cible[l].y<0 && cible[l].dy<0)||(cible[l].y + cible[l].ty>SCREEN_H && cible[l].dy>0))
  130.                 cible[l].dy=-cible[l].dy;
  131.  
  132.             cible[l].x=cible[l].x-4;
  133.             cible[l].y=cible[l].y+cible[l].dy;
  134.             }
  135.  
  136.         masked_blit(ennemi, page, 0,0,-200,0, SCREEN_W, SCREEN_H);
  137.  
  138.         blit(page,screen,0,0,0,0,SCREEN_W,SCREEN_H);
  139.  
  140.         vsync();
  141.     }
  142.  
  143.     return 0;
  144. }
  145. END_OF_MAIN();
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top