void InputOutputHandler::sterowaniePostacia(Hero& hero) { // Sprawdzanie stanu kolizji std::vector<bool> bStany = hero.getZnacznikiKolizji().getCollisionState(); // Blad - Kiedy ustawia sie na niewidoczny, detektor przestaje dzialac. if (IsKeyDown( irr::KEY_KEY_Q )) { hero.getZnacznikiKolizji().setVisible(false); } if (IsKeyDown( irr::KEY_KEY_E )) { hero.getZnacznikiKolizji().setVisible(true); } konsola.setMessage(0, bStany[0] ? "left: true" : "left: false"); konsola.setMessage(1, bStany[1] ? "right: true" : "right: false"); konsola.setMessage(2, bStany[2] ? "forward: true" : "forward: false"); konsola.setMessage(3, bStany[3] ? "back: true" : "back: false"); konsola.setMessage(4, bStany[4] ? "up: true" : "up: false"); konsola.setMessage(5, bStany[5] ? "down: true" : "down: false"); if(!bStany[SideCollisionDetector::down]) hero.fallDown(); hero.getZnacznikiKolizji().setPosition(hero.getPosition(), hero.getRotation(), hero.getDirection()); hero.getZnacznikiKolizji().setRotation(hero.getRotation(), hero.getDirection()); if ( IsKeyDown( klawiszSkoku ) && !hero.getJumpState() && bStany[SideCollisionDetector::down] ) { hero.setJumpState(true); hero.stopFallingDown(); } else if (bStany[SideCollisionDetector::down] || bStany[SideCollisionDetector::up]) hero.setJumpState(false); if(hero.getJumpState()) hero.jump(); int player_direction = 0; if ( IsKeyDown( irr::KEY_KEY_W ) ) player_direction |= FORWARD; if ( IsKeyDown( irr::KEY_KEY_S ) ) player_direction |= BACKWARD; if ( IsKeyDown( irr::KEY_KEY_A ) ) player_direction |= LEFT; if ( IsKeyDown( irr::KEY_KEY_D ) ) player_direction |= RIGHT; //nic się nie zmieniło if(player_direction == 0) { if (hero.getBezwladnosc() <= 0) hero.move(STAND, FORWARD); else hero.decelerate(); hero.getZnacznikiKolizji().setPosition(hero.getPosition(), hero.getRotation(), hero.getDirection()); hero.getZnacznikiKolizji().setRotation(hero.getRotation(), hero.getDirection()); moveCameraControl(); hero.rotate(direction - 90); return; } else { hero.setBezwladnosc(1); hero.resetAnimAndSpeed(); hero.setDirection(static_cast<DIRECTION>(player_direction)); hero.getZnacznikiKolizji().setPosition(hero.getPosition(), hero.getRotation(), hero.getDirection()); hero.getZnacznikiKolizji().setRotation(hero.getRotation(), hero.getDirection()); hero.move(WALK, hero.getDirection()); moveCameraControl(); } hero.rotate(direction - 90); }