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 64 65 66 67 68 69 70 71 72
|
#include <SDL.h>
#include <iostream>
const int WIDTH=640;
const int HEIGHT=480;
int main(int argc, char **argv)
{
//Déclaration des variables
SDL_Event event;
SDL_Surface *screen;
int done = 0;
//Initialisation de SDL
if(SDL_Init(SDL_INIT_VIDEO)!=0)
{
std::cerr << "Probleme pour initialiser SDL" << SDL_GetError() << std::endl;
return 1;
}
//Mettre un titre à la fenêtre
SDL_WM_SetCaption("Programme SDL de base", NULL);
//Ouvrerture d'une surface pour l'affichage de la fenêtre
screen = SDL_SetVideoMode(WIDTH,HEIGHT, 32,
SDL_DOUBLEBUF | SDL_HWSURFACE);
if(screen==NULL)
done = 1;
/* On active l'unicode */
SDL_EnableUNICODE(1);
//Boucle generale
while(!done)
{
//Traiter les évènements
while(SDL_PollEvent(&event))
{
switch(event.type)
{
//Si on veut quitter, done=1 suffira
case SDL_QUIT:
done=1;
break;
case SDL_KEYDOWN:
if((event.key.keysym.unicode >= 'a') && (event.key.keysym.unicode <= 'z'))
printf("Code DOWN UNICODE de '%c' : %d\n", event.key.keysym.unicode,event.key.keysym.unicode);
event.key.keysym.unicode = 0;
break;
//Si on vient de relacher une touche de clavier
case SDL_KEYUP:
if((event.key.keysym.unicode >= 'a') && (event.key.keysym.unicode <= 'z'))
printf("Code UP UNICODE de '%c' : %d\n", event.key.keysym.unicode, event.key.keysym.unicode);
//Et si c'est la lettre q
if(event.key.keysym.unicode==SDLK_q)
//On met done a 1 pour quitter
done=1;
event.key.keysym.unicode = 0;
break;
//Sinon on ne fait rien
default:
break;
}
}
}
SDL_Quit();
return 0;
} |
Partager