/**
 * This is the starter function of game loop..
 * It simply checks the event pool to get any keyboard or
 * mouse events that occured.
 * It controls both of the event listeners to call their 
 * listener functions
 * This function has its time counter and its run time can be
 * get via getEventTime function.
 * TODO collecting the currently pressed and not released keys and defining new events for them
 * may be useful.. ex: for ctrl+a or alt+e or something.. However current keyboardEvent probably
 * will need to be changed..(maybe adding a get super key and get key functions? )
 */
void GraphicsEngine::checkEvents(){
	uint start=SDL_GetTicks();
	while(SDL_PollEvent(&event)){
		if(event.type == SDL_KEYDOWN){
			if(keyboardListener==NULL)
				return;
			keyboardListener->keyPressed(defineKey(&event));
		}
		if(event.type == SDL_KEYUP){
			if(keyboardListener== NULL)
				return;
			keyboardListener->keyReleased(defineKey(&event));
		}
		if(event.type == SDL_QUIT){
			cout<<"Quit Event Catched! Killing SDL\n";
			killSDL();
			exit(0);
		}
	}
    eventTime=SDL_GetTicks()-start;
}
Esempio n. 2
0
void Keyboard::initialize()
{
    // A-Z
    for (int i = 0; i < 26; ++i)
    {
        defineKey(QString('A' + i), (Qt::Key)(Qt::Key_A + i));
    }
    
    // 0-9
    for (int i = 0; i <= 10; ++i)
    {
        defineKey(QString('0' + i), (Qt::Key)(Qt::Key_0 + i));
    }

    // F1 -> F12
    for (int i = 0; i < 12; ++i)
    {
        QString id = "F";
        id += QString::number(i + 1);

        defineKey(id, (Qt::Key)(Qt::Key_F1 + i));
    }

    // Misc
    defineKey("Control",   Qt::Key_Control);
    defineKey("Meta",      Qt::Key_Meta);
    defineKey("Alt",       Qt::Key_Alt);
    defineKey("Shift",     Qt::Key_Shift);
    defineKey("Tab",       Qt::Key_Tab);
    defineKey("Enter",     Qt::Key_Return);
    defineKey("Backspace", Qt::Key_Backspace);
    defineKey("Escape",    Qt::Key_Escape);
    defineKey("Space",     Qt::Key_Space);
    defineKey("Left",      Qt::Key_Left);
    defineKey("Right",     Qt::Key_Right);
    defineKey("Up",        Qt::Key_Up);
    defineKey("Down",      Qt::Key_Down);
}