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