Modification de la boucle dévènements, traitement de tout les évènement

de la file d'attente avant d'effectuer le rendu.
This commit is contained in:
Yoann 2011-11-28 19:21:35 +01:00
parent d7cfbccd75
commit 11716eaeda

View File

@ -104,31 +104,32 @@ void View::mainLoop() {
SDL_Event event; SDL_Event event;
while (continuer) { while (continuer) {
SDL_WaitEvent(&event); while ( SDL_PollEvent(&event) ) {
switch(event.type) { switch(event.type) {
case SDL_QUIT: case SDL_QUIT:
continuer = 0; continuer = 0;
break; break;
case SDL_KEYDOWN: case SDL_KEYDOWN:
switch(event.key.keysym.sym) { switch(event.key.keysym.sym) {
case SDLK_DOWN: case SDLK_DOWN:
cameraCenter = cameraCenter - Vertex::fromSpherical(moveDist, yAngle, xAngle); cameraCenter = cameraCenter - Vertex::fromSpherical(moveDist, yAngle, xAngle);
break; break;
case SDLK_UP: case SDLK_UP:
cameraCenter = cameraCenter + Vertex::fromSpherical(moveDist, yAngle, xAngle); cameraCenter = cameraCenter + Vertex::fromSpherical(moveDist, yAngle, xAngle);
break; break;
default: default:
break; break;
} }
break; break;
case SDL_MOUSEMOTION: case SDL_MOUSEMOTION:
xAngle = 90 - (event.motion.x - (windowWidth/2))*340/windowWidth; xAngle = 90 - (event.motion.x - (windowWidth/2))*340/windowWidth;
yAngle = 90 + (event.motion.y - (windowHeight/2))*340/windowHeight; yAngle = 90 + (event.motion.y - (windowHeight/2))*340/windowHeight;
break; break;
default: default:
break; break;
}
} }
renderScene(); renderScene();