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 52 53 54 55 56 57 58 59 60 61 62 63
|
// Permet de se passer des std:: -> std::cout devient cout
using namespace std;
//Un moyen de s'assurer que le programme va nous attendre pour quitter
bool aContinue = true;
//Tant que l'utilisateur ne veut pas quitter
while( aContinue )
{
//Tant qu'il y a un événement à traiter
SDL_Event aEvent;
while( SDL_PollEvent( &aEvent ) )
{
// La solution, SDL_FillRect avec le 2eme parametre a NULL ( premet de remplir TOUT l'ecran )
// La couleur du fond d'ecran sera ici noir
SDL_FillRect(aSreen, NULL, SDL_MapRGB(aScreen->format, 0, 0, 0));
switch(aEvent.type) /* On teste le type d'évènement */
{
case SDL_QUIT: /* Si c'est un évènement QUITTER */
aContinue = false; /* On met le booléen à 0, donc la boucle va s'arrêter */
break;
case SDL_KEYDOWN: /* Si appui d'une touche */
{
SDL_Surface * aOptimizedMessage = NULL;
switch (aEvent.key.keysym.sym)
{
case SDLK_UP: /* Appui sur la touche haut */
{
cout <<"UP"<< endl;
aMessage = TTF_RenderText_Solid( aFont, "Upkey has been pressed", aTextColor );
aOptimizedMessage = Tools::loadText( aMessage );
Tools::applySurface( 100, 400, aOptimizedMessage, aScreen );
}
break;
case SDLK_DOWN: /* Appui sur la touche bas */
{
cout <<"DOWN"<< endl;
aMessage = TTF_RenderText_Solid( aFont, "Downkey has been pressed", aTextColor );
aOptimizedMessage = Tools::loadText( aMessage );
Tools::applySurface( 100, 400, aOptimizedMessage, aScreen );
}
break;
}
break;
}
}
//Mise à jour de l'écran, UN SEUL dans la boucle !
if( SDL_Flip( aScreen ) == -1 )
{
return 1;
}
}
} |
Partager