123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #include "eventLoop.h"
- int eventLoop(SDL_Surface* ecran)
- {
- int check(0);
-
- SDL_Surface* mort = SDL_LoadBMP("Images/GameOver.bmp");
- SDL_SetColorKey(mort,SDL_SRCCOLORKEY,SDL_MapRGB(mort->format,0,255,255));
- Joueur joueur(ecran);
- joueur.setArme("Baroudeur");
- Bouton iconeOne(0,0,0,"Baroudeur", ecran, &joueur);
- Bouton iconeTwo(0,76,1,"Usiane", ecran, &joueur);
- Bouton iconeThree(0,152,2,"Triphaseur", ecran, &joueur);
- ChampDeBataille arena(&joueur,ecran,10);
- if (!mort)
- {
- printf("Unable to load bitmap: %s\n", SDL_GetError());
- check=-1;
- return check;
- }
-
- SDL_Rect position;
- position.x = 0;
- position.y = 0;
-
- bool latence(true);
-
- bool done = false;
- SDL_ShowCursor(SDL_DISABLE);
-
- int tempsPrecedent(0);
- int tempsActuel(0);
- while (!done && optionsFire::continuer)
- {
-
- SDL_Event event;
- SDL_PollEvent(&event);
-
- tempsActuel=SDL_GetTicks();
- if (tempsActuel-tempsPrecedent>20)
- {
-
- switch (event.type)
- {
-
- case SDL_QUIT:
- optionsFire::continuer=false;
- done = true;
- break;
- case SDL_KEYDOWN:
- switch(event.key.keysym.sym)
- {
- case SDLK_ESCAPE:
- done = true;
- break;
- case SDLK_b:
- joueur.setArme("Baroudeur");
- break;
- case SDLK_u:
- joueur.setArme("Usiane");
- break;
- case SDLK_t:
- joueur.setArme("Triphaseur");
- break;
- }
- break;
- case SDL_MOUSEMOTION:
- joueur.giveMousePosition(event.motion.x,event.motion.y);
- break;
- case SDL_MOUSEBUTTONDOWN:
- switch (event.button.button)
- {
- case SDL_BUTTON_LEFT:
- if(latence==true)
- {
- Cliquable::getFire(event.button.x,event.button.y,joueur.getTypeWeapon());
- joueur.tir();
- }
- latence=false;
- break;
- }
- break;
- case SDL_MOUSEBUTTONUP:
- switch (event.button.button)
- {
- case SDL_BUTTON_LEFT:
- latence=true;
- break;
- }
- }
-
-
- SDL_FillRect(ecran, 0, SDL_MapRGB(ecran->format, 0, 0, 0));
-
- SDL_BlitSurface(optionsFire::level, 0, ecran, &position);
-
- tempsActuel=tempsPrecedent;
- if (joueur.estVivant())
- {
- iconeOne.afficher();
- iconeTwo.afficher();
- iconeThree.afficher();
- arena.afficher();
- joueur.afficher();
- }
- else
- {
- SDL_BlitSurface(mort, 0, ecran, &position);
- SDL_ShowCursor(SDL_ENABLE);
- }
-
- Cliquable::upFire();
- }
-
- SDL_Flip(ecran);
- }
-
- SDL_FreeSurface(optionsFire::level);
- optionsFire::level=0;
- return check;
- }
|