当前位置: 首页>>代码示例>>C++>>正文


C++ Hero::getJumpState方法代码示例

本文整理汇总了C++中Hero::getJumpState方法的典型用法代码示例。如果您正苦于以下问题:C++ Hero::getJumpState方法的具体用法?C++ Hero::getJumpState怎么用?C++ Hero::getJumpState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Hero的用法示例。


在下文中一共展示了Hero::getJumpState方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: sterowaniePostacia

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);
}
开发者ID:Spinex,项目名称:N3D,代码行数:78,代码来源:InputOutputHandler.cpp


注:本文中的Hero::getJumpState方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。