void PlayState::processEvents(sf::Event event) { switch (event.type) { case sf::Event::KeyPressed: handlePlayerInput(event.key.code, true); break; case sf::Event::KeyReleased: handlePlayerInput(event.key.code, false); break; } sf::Vector2i mousePos(event.mouseButton.x, event.mouseButton.y); if (exitButton.getGlobalBounds().contains((float)mousePos.x, (float)mousePos.y)) { GameStateManager::Instance()->clean(); } else if (menuButton.getGlobalBounds().contains((float)mousePos.x, (float)mousePos.y)) { GameStateManager::Instance()->changeGameState(new MainMenuState); } /*if ((mousePos.x > menuButton.getPosition().x - menuButton.getLocalBounds().width / 2) && (mousePos.x < menuButton.getPosition().x + menuButton.getLocalBounds().width / 2) && (mousePos.y > menuButton.getPosition().y - menuButton.getLocalBounds().height / 2) && (mousePos.y < menuButton.getPosition().y + menuButton.getLocalBounds().height / 2)) { }*/ }
void GameEngine::processEvents(void) { sf::Event event; while (_mWindow.pollEvent(event)) { switch (event.type) { case sf::Event::KeyPressed: handlePlayerInput(event.key.code, true); break; case sf::Event::KeyReleased: handlePlayerInput(event.key.code, false); break; case sf::Event::Closed: _mWindow.close(); break; default: break; } } }
void Game::processEvents() { sf::Clock clock; sf::Event event; while (mWindow.pollEvent(event)) { source.x++; if (source.x * 32 >= pTexture.getSize().x) source.x = 0; if (event.type == sf::Event::Closed) mWindow.close(); switch (event.type) { case sf::Event::KeyPressed: handlePlayerInput(event.key.code, true); break; case sf::Event::KeyReleased: handlePlayerInput(event.key.code, false); break; case sf::Event::MouseButtonPressed: handlePlayerInput(event.mouseButton.button, true); break; case sf::Event::MouseButtonReleased: handlePlayerInput(event.mouseButton.button, false); break; case sf::Event::Closed: mWindow.close(); break; } } }
void Game::processGamepad() { for (unsigned int itr = 0; itr < GamepadButtons::BTN_COUNT; ++itr) { if (sf::Joystick::isButtonPressed(0, itr)) handlePlayerInput(itr, true); else handlePlayerInput(itr, false); } if (sf::Joystick::getAxisPosition(0, sf::Joystick::X) > 90) { handlePlayerInput(sf::Keyboard::Left, false); handlePlayerInput(sf::Keyboard::Right, true); } else if (sf::Joystick::getAxisPosition(0, sf::Joystick::X) < -90) { handlePlayerInput(sf::Keyboard::Left, true); handlePlayerInput(sf::Keyboard::Right, false); } else { handlePlayerInput(sf::Keyboard::Left, false); handlePlayerInput(sf::Keyboard::Right, false); } }
// Event handler der die ganzen Events verwaltet. void Game::processEvents() { sf::Event event; while (Window.pollEvent(event)) { switch (event.type) { case sf::Event::KeyPressed: { if(XMLDoc.loadSteuerung() == "Tastatur") { handlePlayerInput(event.key.code, true); break; } break; } case sf::Event::KeyReleased: { if(XMLDoc.loadSteuerung() == "Tastatur") { handlePlayerInput(event.key.code, false); break; } break; } case sf::Event::MouseButtonPressed: { if(XMLDoc.loadSteuerung() == "Maus") { MausSteuerung(); break; } break; } case sf::Event::MouseButtonReleased: { if(XMLDoc.loadSteuerung() == "Maus") { MausSteuerung(); break; } break; } case sf::Event::Closed: Window.close(); break; } } }
bool GameState::handleEvent(const sf::Event& event) { switch (event.type) { case sf::Event::KeyPressed: handlePlayerInput(event.key.code, true); break; case sf::Event::KeyReleased: handlePlayerInput(event.key.code, false); break; default: break; } return true; }
void IngameState::handleEvent(const SDL_Event& event) { auto player = game->getPlayer(); switch(event.type) { case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: StateManager::get().enter(new PauseState(game)); break; case SDLK_m: StateManager::get().enter(new DebugState(game, _look.position, _look.rotation)); break; case SDLK_SPACE: if( getWorld()->state->currentCutscene ) { getWorld()->state->skipCutscene = true; } break; case SDLK_c: camMode = CameraMode((camMode+(CameraMode)1)%CAMERA_MAX); break; case SDLK_w: _movement.x = 1.f; break; case SDLK_s: _movement.x =-1.f; break; case SDLK_a: _movement.y = 1.f; break; case SDLK_d: _movement.y =-1.f; break; default: break; } break; case SDL_KEYUP: switch(event.key.keysym.sym) { case SDLK_w: case SDLK_s: _movement.x = 0.f; break; case SDLK_a: case SDLK_d: _movement.y = 0.f; break; default: break; } break; default: break; } if( player && player->isInputEnabled() ) { handlePlayerInput(event); } State::handleEvent(event); }
bool Asteroids::Update() { if (!m_Paused) { pCore->doSleep(); Number frameelapsed = pCore->getElapsed(); if (p_Player->m_Active) { p_Player->Update(&frameelapsed); handlePlayerInput(); } else { p_Player->UpdateGameOver(); } p_Player->UpdateShots(&frameelapsed); p_Rocks->Update(&frameelapsed); p_UFOs->Update(&frameelapsed); p_Enemy->Update(&frameelapsed); } if (m_Exit) { return false; } return pCore->updateAndRender(); }
void IngameState::handleEvent(const sf::Event &event) { auto player = game->getPlayer(); switch(event.type) { case sf::Event::KeyPressed: switch(event.key.code) { case sf::Keyboard::Escape: StateManager::get().enter(new PauseState(game)); break; case sf::Keyboard::M: StateManager::get().enter(new DebugState(game, _look.position, _look.rotation)); break; case sf::Keyboard::Space: if( getWorld()->state->currentCutscene ) { getWorld()->state->skipCutscene = true; } break; case sf::Keyboard::C: camMode = CameraMode((camMode+(CameraMode)1)%CAMERA_MAX); break; case sf::Keyboard::W: _movement.x = 1.f; break; case sf::Keyboard::S: _movement.x =-1.f; break; case sf::Keyboard::A: _movement.y = 1.f; break; case sf::Keyboard::D: _movement.y =-1.f; break; default: break; } break; case sf::Event::KeyReleased: switch(event.key.code) { case sf::Keyboard::W: case sf::Keyboard::S: _movement.x = 0.f; break; case sf::Keyboard::A: case sf::Keyboard::D: _movement.y = 0.f; break; default: break; } break; default: break; } if( player && player->isInputEnabled() ) { handlePlayerInput(event); } State::handleEvent(event); }
void Game::processEvents() //Captura y procesa eventos { sf::Event event; while (window.pollEvent(event)) { switch (event.type) { case sf::Event::KeyPressed: handlePlayerInput(event.key.code, true); break; case sf::Event::KeyReleased: handlePlayerInput(event.key.code, false); break; case sf::Event::Closed: window.close(); break; } } }
void testBallMoves() { int startStateIndex, numStartStates; GravPngScoreChange scoreChange; #define NUM_START_STATES 10 StartState startStates[NUM_START_STATES] = { straightLeftPaddleNonTopCollision, noStartState, straightRightNonTopCollision, straightLeftPaddleRearCollision, straightRightPaddleRearCollision, straightRightPaddleBottomCollision, straightRightPaddleTopCollision, straightLeftPaddleTopCollision, straightLeftPaddleBottomCollision}; numStartStates = NUM_START_STATES; startStateIndex = 0; setupSpriteMemPtrs(); fillSpriteMem(); initGameObjects(startStates[startStateIndex]); drawBall(&ball); drawPaddleSprites(&paddleOne, &paddleTwo); printPaddle(&paddleTwo); printBall(&ball); printCourt(&court); while(1) { scoreChange = updatePongGame(&gPngGame); if(scoreChange == PLAYER_ONE_GOAL || scoreChange == PLAYER_TWO_GOAL) { flashScreen(); startStateIndex++; if(startStateIndex < numStartStates) { if(startStates[startStateIndex] == noStartState) { resetPongGame(&gPngGame); gPngGame.isPlayerOneHuman = true; } else { initGameObjects(startStates[startStateIndex]); } } else { return; } } if(startStates[startStateIndex] == noStartState) { handlePlayerInput(&gPngGame, true); //playerOneInput(&gPngGame); playerTwoInput(&gPngGame); } drawBall(&ball); drawPaddleSprites(&paddleOne, &paddleTwo); } }
void Client::handleInputEvents() { SDL_Event event; while (SDL_PollEvent(&event)) { m_gui->handleEvent(event); if (m_mainPlayer && m_peer && m_connected && m_gui->inputDemanded() == false) { handlePlayerInput(event); m_quickBarMenu->handleEvent(event); } switch (event.type) { case SDL_KEYDOWN: if (event.key.keysym.sym == SDLK_ESCAPE) { //only if we are connected, do we allow hiding and showing (escape menu) if (m_peer) { if (!m_mainMenu->escapeMenuVisible()) { m_mainMenu->showEscapeMenu(); } else { m_mainMenu->hideEscapeMenu(); } } } else if (event.key.keysym.sym == SDLK_F1) { m_debugMenu->setCollapsed(!m_debugMenu->collapsed()); } else if (event.key.keysym.sym == SDLK_F8) { std::stringstream ss; ss << "Player"; std::random_device device; std::mt19937 rand(device()); std::uniform_int_distribution<> distribution(0, INT_MAX); ss << distribution(rand); startMultiplayerHost(ss.str()); } else if (event.key.keysym.sym == SDLK_F10) { m_renderGUI = !m_renderGUI; } else if (event.key.keysym.sym == SDLK_F11) { if (m_debugSettings == nullptr) { m_debugSettings = new DebugSettings(this); m_debugSettings->show(); } else { if (m_debugSettings->visible()) { m_debugSettings->hide(); } else { m_debugSettings->show(); } } } break; case SDL_WINDOWEVENT_CLOSE: //FIXME: f*****g useless. doesn't get called for..gee, what would this event be called for? oh yeah, window closing. No, instead that's f*****g SDL_QUIT, which is // also for some f*****g reason, also ctrl-C/break. That shit don't make sense brah // if (m_peer) { // m_mainMenu->toggleShown(); // } else { // shutdown(); // } break; case SDL_QUIT: // if (m_peer) { // m_mainMenu->showEscapeMenu(); // } else { //NOTE: so far this seems to be ctrl-C as well as window close button. Who the f**k knows why the above one does nothing shutdown(); //} break; default: break; } } }
void OJ_SceneScoreAttack::update(Step* _step) { playerOne->health = 9999999999999; playerTwo->health = 9999999999999; if(arena->startIndicatorTimer.active){ waveText->parents.at(0)->scale(Easing::easeOutQuint(arena->startIndicatorTimer.elapsedSeconds, 1.5f, -0.5f, arena->startIndicatorTimer.targetSeconds), false); waveText->setMarginTop(vox::NumberUtils::randomFloat(0.0025f, 0.005f) + Easing::easeOutBounce(arena->startIndicatorTimer.elapsedSeconds, 0.75f, -0.75f, arena->startIndicatorTimer.targetSeconds)); }else{ waveText->parents.at(0)->scale(vox::NumberUtils::randomFloat(0.98f, 1.02f), false); waveText->setMarginTop(vox::NumberUtils::randomFloat(0.0025f, 0.005f)); } std::wstringstream ws; ws << "TIME: " << (int)(gameOver.targetSeconds - gameOver.elapsedSeconds - 2) << "\nSCORE: " << arena->score; scoreText->setText(ws.str()); specialTimer.update(_step); snapTime += _step->deltaTime; if(snapped){ glm::vec3 v = snapPos - playerOne->rootComponent->getWorldPos(); v = glm::normalize(v); float s = playerOne->rootComponent->body->GetMass() * 10 * std::min(snapTime, 10.f); playerOne->rootComponent->applyLinearImpulseToCenter(v.x*s, v.y*s); v = snapPos - playerTwo->rootComponent->getWorldPos(); v = glm::normalize(v); s = playerTwo->rootComponent->body->GetMass() * 10 * std::min(snapTime, 10.f); playerTwo->rootComponent->applyLinearImpulseToCenter(v.x*s, v.y*s); } if(beamActive){ OJ_Bullet * beamPart = arena->getBullet(OJ_ResourceManager::playthrough->getTexture("BULLET")->texture); beamPart->setTranslationPhysical(snapPos.x + teamworkAngle.x + vox::NumberUtils::randomFloat(-3, 3), snapPos.y + teamworkAngle.y + vox::NumberUtils::randomFloat(-3, 3), 0, false); beamPart->applyLinearImpulseToCenter(teamworkAngle.x*25, teamworkAngle.y*25); } if(guideActive){ guidedBullet->applyLinearImpulseToCenter(teamworkAngle.x*std::min(maxCharge, snapTime)*10, teamworkAngle.y*std::min(maxCharge, snapTime)*10); } joy->update(_step); if(joy->joysticks[0] == nullptr){ joy->joysticks[0] = new JoystickVirtual(0); } if(joy->joysticks[1] == nullptr){ joy->joysticks[1] = new JoystickVirtual(1); } unsigned int joyCnt = 2; switch(joyCnt){ case 2: if(playerTwo != nullptr){ handlePlayerInput(playerTwo, joy->joysticks[1]); } case 1: if(playerOne != nullptr){ handlePlayerInput(playerOne, joy->joysticks[0]); } break; default: exit; } if(playerOne != nullptr && playerTwo != nullptr){ glm::vec2 av = (playerOne->aim + playerTwo->aim) * 0.5f; float angle = glm::atan(av.y, av.x); teamworkAngle = glm::vec2(cos(angle), sin(angle)); } handleStancing(); // camera controls if (keyboard->keyJustUp(GLFW_KEY_1)){ if(activeCamera == cameras.back()){ activeCamera = cameras.at(0); }else{ for(unsigned long int i = 0; i < cameras.size()-1; ++i){ if(activeCamera == cameras.at(i)){ activeCamera = cameras.at(i+1); break; } } } } box2DWorld->update(_step); OJ_Scene::update(_step); glm::uvec2 sd = vox::getScreenDimensions(); uiLayer->resize(0, sd.x, 0, sd.y); uiLayer->update(_step); gameOver.update(_step); if(gameOver.targetSeconds - gameOver.elapsedSeconds < 2){ if(gameOverMessage == nullptr){ gameOverMessage = new TextArea(bulletWorld, this, font, textShader, 1.f); gameOverMessage->setRationalHeight(1.f); gameOverMessage->horizontalAlignment = kCENTER; gameOverMessage->verticalAlignment = kMIDDLE; gameOverMessage->setText(L"TIME'S UP!"); uiLayer->addChild(gameOverMessage); playerOne->disable(2); playerTwo->disable(2); } ShaderComponentHsv * s = dynamic_cast<ShaderComponentHsv *>(dynamic_cast<ComponentShaderBase *>(mainShader)->getComponentAt(1)); s->setValue(Easing::easeInOutCubic(gameOver.elapsedSeconds - (gameOver.targetSeconds-2), 1, -1, 2.f)); } }