void QDirectFbInput::handleEvents() { DFBResult hasEvent = m_eventBuffer->HasEvent(m_eventBuffer.data()); while(hasEvent == DFB_OK){ DFBEvent event; DFBResult ok = m_eventBuffer->GetEvent(m_eventBuffer.data(), &event); if (ok != DFB_OK) DirectFBError("Failed to get event",ok); if (event.clazz == DFEC_WINDOW) { switch (event.window.type) { case DWET_BUTTONDOWN: case DWET_BUTTONUP: case DWET_MOTION: handleMouseEvents(event); break; case DWET_WHEEL: handleWheelEvent(event); break; case DWET_KEYDOWN: case DWET_KEYUP: handleKeyEvents(event); break; case DWET_ENTER: case DWET_LEAVE: handleEnterLeaveEvents(event); default: break; } } hasEvent = m_eventBuffer->HasEvent(m_eventBuffer.data()); } }
void Loop::processEvents() { SDL_Event e; while (SDL_PollEvent(&e) != 0) { //User requests quit if (e.type == SDL_QUIT) { mIsQuit = true; } //Events if text input not active if (!SDL_IsTextInputActive()) { handleMouseEvents(e); if (e.type == SDL_KEYDOWN) { handleKeyboardEvents(e); } } //Text input active else { handleTextInputEvents(e); } } }
void Application::handleInput(){ static bool escButton = false; player1->stop(); if(player2 != NULL){ player2->stop(); } if(dummyBot != NULL){ dummyBot->stop(); } if (keyState[SDLK_ESCAPE]) { escButton = true; } else if(escButton){ if(inGame){ } else if((!inGame && isServer) || (!inGame && isClient) || (!inGame && isVersus)){ } showMenu = !showMenu; escButton = false; menu->invertToCheckCollisionAll(); menu->setToCheckCollision(false); } if(showMenu){ handleMouseEvents(); } //player1 controls if((isVersus && player1Turn) || (isServer && player1Turn) || (isBotGame && player1Turn)){ handlePlayer1Input(keyState[SDLK_a], keyState[SDLK_d], keyState[SDLK_w], keyState[SDLK_s], keyState[SDLK_SPACE]); } //player2 controls if((isVersus && player2Turn) || (isClient && player2Turn)){ handlePlayer2Input(keyState[SDLK_LEFT], keyState[SDLK_RIGHT], keyState[SDLK_UP], keyState[SDLK_DOWN], keyState[SDLK_KP3]); } //bot game if(isBotGame && player2Turn){ dummyBot->takeTurn(player1->tank->getPositionX()); //increasing = false; //decreasing = false; if(dummyBot->toMoveLeft()){ if(!player2->tank->isBlocking()){ player2->tank->moveLeft(); player2->tankAnimation->runBackward(); } } if(dummyBot->toMoveRight()){ if(!player2->tank->outOfScreen()){ player2->tank->moveRight(); player2->tankAnimation->runForward(); } } if(increasing){ if(player2->tank->weapon->getDegrees() < 65){ player2->tank->weapon->incDegrees(); player2->weaponAnimation->runForward(); } increasing = false; } else if(dummyBot->toIncDegrees()){ increasing = true; } else if(decreasing){ if(player2->tank->weapon->getDegrees() > -65){ player2->tank->weapon->decDegrees(); player2->weaponAnimation->runBackward(); } decreasing = false; } else if(dummyBot->toDecDegrees()){ decreasing = true; } dummyBot->clearFlags(); } //reset if (this->keyState[SDLK_r]){ ////FIXXXXXXXXXXXXXXXXXX reset(); if(isServer){ setResetIsPressed(true); server->sendData(&resetIsPressed, PACKET_SIZE); } } }
void InputHandler::handleEvents() { sf::Event event; while (gdata.window->pollEvent(event)) { if (event.type == sf::Event::Closed) { gdata.running = false; } } if (!gdata.window->hasFocus()) return; handlePlayerEvents(); handleMouseEvents(); handleControllerEvents(); debug_events(); if (gdata.keys[sf::Keyboard::R].isKeyPressed) { gdata.reload = true; gdata.show_progress = false; gdata.replay_level = false; } if(gdata.keys[sf::Keyboard::Comma].isKeyPressed) { gdata.level -= 1; gdata.reload = true; gdata.show_progress = false; gdata.replay_level = false; gdata.shotData.clear(); } if(gdata.keys[sf::Keyboard::Period].isKeyPressed) { gdata.level += 1; gdata.reload = true; gdata.show_progress = false; gdata.replay_level = false; gdata.shotData.clear(); } if(gdata.keys[sf::Keyboard::D].isKeyPressed) { gdata.draw_debug = !gdata.draw_debug; } if(gdata.keys[sf::Keyboard::G].isKeyPressed) { gdata.draw_grid = !gdata.draw_grid; } if(gdata.keys[sf::Keyboard::Escape].isKeyPressed) { gdata.gamestate = STATE_MENU; gdata.show_progress = false; gdata.replay_level = false; gdata.shotData.clear(); cout << "Back to menu"<< endl; } }
void Game::handleAllEvents() { handleKeyEvents(); handleMouseEvents(); }