1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #include<stdio.h>
#include<SDL.h>
typedef struct objet objet;
typedef struct dipole dipole;
struct objet
{SDL_Surface *img;
SDL_Rect pos;};
struct dipole
{objet res,bo,co,io,ife;};
void pause(SDL_Event ,objet princ,objet fond,dipole dipole);
void deplacer(objet fond,objet dip,objet princ,SDL_Event event );
void deplacer(objet fond,objet dip,objet princ,SDL_Event event)
{
do{
SDL_BlitSurface(fond.img,NULL,princ.img,&fond.pos);
dip.pos.x=event.motion.x;
dip.pos.y=event.motion.y;
SDL_BlitSurface(dip.img,NULL,princ.img,&dip.pos);
SDL_Flip(princ.img);
SDL_FreeSurface(princ.img);
SDL_WaitEvent(&event);
}
while(event.type!=SDL_MOUSEBUTTONUP || event.button.x<200 || event.button.x>280 || event.button.y<60 || event.button.y>100);
SDL_BlitSurface(dip.img,NULL,princ.img,&dip.pos);
SDL_BlitSurface(fond.img,NULL,princ.img,&dip.pos);
dip.pos.x=198;
dip.pos.y=59;
SDL_BlitSurface(dip.img,NULL,princ.img,&dip.pos);
SDL_Flip(princ.img);
SDL_SaveBMP(princ.img,"d:/fil/fond_temp.bmp");
}
void pause(SDL_Event event,objet princ,objet fond,dipole dipole)
{
switch (event.type)
{
case SDL_MOUSEBUTTONUP:
if(event.button.x>670 && event.button.x<700)
{ if(event.button.y>60 && event.button.y<80)
deplacer(fond,dipole.res,princ,event);
if(event.button.y>80 && event.button.y<100)
deplacer(fond,dipole.bo,princ,event);
if(event.button.y>100 && event.button.y<120)
deplacer(fond,dipole.co,princ,event);
if(event.button.y>120 && event.button.y<140)
deplacer(fond,dipole.io,princ,event);
if(event.button.y>140 && event.button.y<160)
deplacer(fond,dipole.ife,princ,event);
}
} |
Partager