/** * 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; }
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); }