Пример #1
0
void Game::mainloop() {

	this->initialize();

    SDL_Event event;
    
    bool done = false;
    while(!done) {
		
		while (SDL_PollEvent(&event)) {
		
			switch(event.type) {
				case SDL_USEREVENT:
					handleUserEvents(&event);
					break;
					
				case SDL_KEYDOWN:
					// Handle any key presses here.
					break;

				case SDL_MOUSEBUTTONDOWN:
					// Handle mouse clicks here.
					break;

				case SDL_QUIT:
					done = true;
					break;
					
				default:
					break;
			}   // End switch

		}

		this->updateWorld();
		this->m_r->renderScene(this->m_sr);
            
    }   // End while
    
}
Пример #2
0
// Listens to events during the whole time of the application
// and distributes corresponding tasks
void Application::eventLoop()
{
	SDL_Event event;
    	float test = 0.0f;

	while( (!_done) && (SDL_WaitEvent( &event )) ) 
	{
		switch(event.type) 
		{
			case SDL_USEREVENT:
				handleUserEvents( &event );
				break;
			case SDL_KEYUP:
				handleKeyUpEvents( &event.key.keysym );
				break; 
			case SDL_KEYDOWN:
				handleKeyDownEvents( &event.key.keysym );
				break;                                   
			case  SDL_VIDEORESIZE: 
				resize( event.resize.w, event.resize.h );
				break;                      
			case SDL_QUIT:
				_done=true;
				break;

	   		// Manage the mouse motion
			case SDL_MOUSEMOTION:
				_xMousePosition += (float)event.motion.xrel/(float)_windowWidth * 1.2f;
				test = _yMousePosition - (float)event.motion.yrel/(float)_windowHeight * 1.2f;
				if((test>-M_PI) && (test<0.0f))
					_yMousePosition -= (float)event.motion.yrel/(float)_windowHeight * 1.2f;

				break;

			default:
				break;
		} 
	}
}