#include "main.h" // On cree un sdl-toplevel statique static xManager *mgr = NULL; static bool running = true; int main(int argc, char* argv[]) { srand(time(0)); /* [0] Initialisation du manager + Creation de la fenetre =========================================================*/ mgr = new xManager("Ma fenetre SDL", BLOC_WIDTH*BLOC_SIZE, BLOC_HEIGHT*BLOC_SIZE); // Gestion erreur if( !mgr->status() ){ cout << "[INIT] -> " << SDL_GetError() << endl; return -1; } // Couleur de fond mgr->setBackground(0, 96, 183); mgr->setImage("src/bg1.png"); /* [2] On definit le terrain =========================================================*/ // On cree un bout du terrain xMarioGrass btmleft(mgr, (SDL_Rect){-1, 20-2, 10, 3} ); btmleft.push(); xMarioGrass floattcenter(mgr, (SDL_Rect){10, 10, 5, 5} ); floattcenter.push(); /* [3] Gestion des animations (blocs animes) =========================================================*/ // On cree une coquille verte // xMarioGreenShell gs(mgr, 5, 20-3); // gs.start(100, SPRITE_ANIM_INFINITE); // On cree un bloc mystere xMarioMysteryBloc mb(mgr, 5, 20-5); mb.start(150, SPRITE_ANIM_INFINITE); // On cree un bloc normal // xMarioBloc bl(mgr, (SDL_Rect){0, 20-2, 10, 3}); // bl.push(); /* [n-1] Boucle infinie =========================================================*/ // Gestion des evenements SDL_Event event; mgr->attachEvent(SDL_KEYDOWN, &keydownEventHandler); mgr->attachEvent(SDL_QUIT, &quitEventHandler); // Boucle de traitement mgr->update(); mgr->update(); mgr->manageFps(FPS); while(running){ // Gestion des evenements while( SDL_PollEvent(&event) != 0 ) mgr->manageEvents(&event); mgr->manageFps(); // Gestion des FPS (speed) mgr->update(); // Mise a jour du rendu } /* [n] Fin d'execution =========================================================*/ delete mgr; return 0; } /* GESTION DE QUAND ON QUITTE LA FENETRE * * @e Pointeur sur l'evenement appelant * */ void quitEventHandler(SDL_Event *e){ cout << "Exiting program" << endl; running = false; } /* GESTION DE QUAND ON APPUIE SUR FLECHE BAS * * @e Pointeur sur l'evenement appelant * */ void keydownEventHandler(SDL_Event *e){ cout << "BAS" << endl; }