Example #1
0
/**************************************************************************************
                                        UPDATE
 **************************************************************************************/
void update() {
    // Updating score
    if(!end_game) {
        score = "Score: " + to_string(score_points);
        speed_string = "Speed: " + to_string(game_speed);
    }
    update_text (score_txtLabel, score.c_str());
    update_text(speed_txtLabel, speed_string.c_str());
    
    // Moving my objects
    if(!camera.initial_rotation) {
        for(int i=0; i<NUMBER_PARTICLES; i++)
            snow[i].update(dt);
        hero.setSpeed(game_speed);
        hero.update(dt);
        for(int i=0; i<score_points; i++) {
            pines_collected[i].moveFollowing(dt);
            pines_collected[i].setSpeed(game_speed);
        }
        for(int i=0; i<NUMBER_OF_MONSTERS; i++) {
            monster[i].moveFollowing(dt);
            monster[i].setSpeed(monster_speed_factor * game_speed);
        }
    }
    
    // Setting Camera
    camera.setDirection(hero.getDirection());
    camera.setTarget(hero.getPosition());
    camera.update();
    
    // Setting cameras
    if(!end_game) {
        hero.setCamera(*camera.getViewMatrix());
        game_floor.setCamera(*camera.getViewMatrix());
        for(int i=0; i<NUMBER_OF_MONSTERS; i++)
            monster[i].setCamera(*camera.getViewMatrix());
        pine.setCamera(*camera.getViewMatrix());
        for(int i=0; i<score_points; i++)
            pines_collected[i].setCamera(*camera.getViewMatrix());
        for(int i=0; i<NUMBER_PARTICLES; i++)
            snow[i].setCamera(*camera.getViewMatrix());
    }
}
Example #2
0
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);
}