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


C++ Case::getI方法代码示例

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


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

示例1: pv

/**
Affiche le monstre la ou il doit etre sur la case, avec le bon angle et la bonne position
affiche également les points de vie du moob
*/
void afficheMonstre        (sf::RenderWindow &App, sf::Sprite  &SpriteMoob ,Monstre* monMoob,int cote, int offSetX, int offSetY ,  std::list<Tour*> &listTour)
{
   using namespace std;

    Case* caseMoob = monMoob->CaseCourante();

    drawHexagoneIJ ( caseMoob->getI() , caseMoob->getJ(), SpriteMoob, cote, offSetX,  offSetY);
    //sf::Shape pv   = sf::RectangleShape (0,0, 0+monMoob->getPV()/2 ,0,5,sf::Color::Black);

    sf::RectangleShape pv (sf::Vector2f(5,monMoob->getPV()/2));
    pv.setFillColor(sf::Color::Black);
    /// Moche

    drawHexagoneIJ ( caseMoob->getI() , caseMoob->getJ(), pv, cote, offSetX,  offSetY);
    // on centre le moob

    int etape;
    Direction dtion = monMoob->quelleDirection(etape);
    // on bouge en fonction de la direction
    double moobOffSetX=0,moobOffSetY=0,moobAvancement;
    if ( etape == 0)
    {
        moobAvancement = ((1000-monMoob->getAvancement())/1000)*cote*(sqrt(3));
    }
    else
    {
        moobAvancement = ((500-monMoob->getAvancement())/1000)*cote*(sqrt(3));
    }

    double angle = 0;
    switch (dtion)
    {
        case Est  : {
            moobOffSetX = moobAvancement;
            moobOffSetY =0;
            angle = -90;
            if ( etape == 0)
            {
                moobOffSetX -= (sqrt(3)/2) *cote;

            }

            break;}
        case NordEst : {
            moobOffSetX = moobAvancement / 2 ;
            moobOffSetY = -moobAvancement * (sqrt(3)/2) ;

            if ( etape == 0)
            {
                moobOffSetX -= (sqrt(3)/2) *cote /2;
                moobOffSetY += (sqrt(3)/2) *cote *(sqrt(3)/2);

            }
            angle = -30;
            break;}
        case NordOuest : {
            moobOffSetX = -moobAvancement / 2 ;
            moobOffSetY = -moobAvancement * (sqrt(3)/2) ;
            if ( etape == 0)
            {
                moobOffSetX += (sqrt(3)/2) *cote /2;
                moobOffSetY += (sqrt(3)/2) *cote *(sqrt(3)/2);

            }
            angle = 30;
            break;}
        case Ouest : {
            moobOffSetX = - moobAvancement;
            moobOffSetY = 0;
            if ( etape == 0)
            {
                moobOffSetX += (sqrt(3)/2) *cote;


            }
            angle = 90;
            break;}
        case SudOuest : {
             angle = 160;
            moobOffSetX = -moobAvancement / 2 ;
            moobOffSetY = moobAvancement * (sqrt(3)/2) ;
             if ( etape == 0)
            {
                moobOffSetX += (sqrt(3)/2) *cote /2;
                moobOffSetY -= (sqrt(3)/2) *cote *(sqrt(3)/2);

            }

            break;}
        case SudEst: {
             angle = -160;
             moobOffSetX = moobAvancement / 2 ;
            moobOffSetY = moobAvancement * (sqrt(3)/2) ;
              if ( etape == 0)
            {
                moobOffSetX -= (sqrt(3)/2) *cote /2;
//.........这里部分代码省略.........
开发者ID:GrosLapin,项目名称:TowerDefonce,代码行数:101,代码来源:Fonction_graphique.cpp

示例2: main


//.........这里部分代码省略.........
                if ( ! boost::geometry::disjoint(cursorInView,getRing(bouton2)))
                {
                   bouton2.setFillColor(overColor+bouton2couleur) ;

                }
        // boucle event
        sf::Event event;

        while (window.getWindow().pollEvent(event))
        {
            // Close window : exit
            if (event.type == sf::Event::Closed)
            {
                // semble buger
                saveMap(terrain,fichier);
                window.getWindow().close();
            }
            if (event.type == sf::Event::MouseButtonReleased )
            {
                cursorInView = window.getCursorInView(EnumElementsWindow::Menu,  cursorInWindow);

                if ( ! boost::geometry::disjoint(cursorInView,getRing(bouton1)))
                {

                    cout << "bouton 1";
                }
                if ( ! boost::geometry::disjoint(cursorInView,getRing(bouton2)))
                {

                   cout << "bouton2";
                }
            }
            if (event.type == sf::Event::MouseButtonPressed)
            {
                if (event.mouseButton.button == sf::Mouse::Right)
                {
                    // si on est sur un case connue du terrain
                    if ( nullptr != terrain.getCase(ijSelection.x,ijSelection.y) )
                    {
                        std::cout << terrain.getCase(ijSelection.x,ijSelection.y) <<endl;
                        vectConstruct.push_back(unique_ptr<Cible>(new Cible(terrain.getCase(ijSelection.x,ijSelection.y),100)));
                        std::cout << "__" <<  vectConstruct.size() << "__";
                    }
                }
            }


        }
        if ( sf::Mouse::isButtonPressed(sf::Mouse::Left))
        {
            if ( vectConstruct.size() > 0)
                vectConstruct.erase(vectConstruct.begin());
        }

        // affichage de la map
        for ( Case& caseRef : terrain )
        {
            // affichage des case
            placePositionableIJ ( caseRef.getI() ,  caseRef.getJ() , polygon,  window.getCote());
            window.draw(polygon,EnumElementsWindow::Jeu);


            text.setString(patch::to_string(caseRef.getI())+","+patch::to_string(caseRef.getJ()));
            placePositionableIJ ( caseRef.getI() ,caseRef.getJ() , text,  window.getCote());
            window.draw(text,EnumElementsWindow::Jeu);
        }

        for (auto &positio : vectConstruct )
        {
            Case* uneCase =  positio->getPosition();
            if ( nullptr != uneCase )
            {
                 placePositionableIJ ( uneCase->getI() , uneCase->getJ() , polygonBleu,  window.getCote());
                window.draw(polygonBleu,EnumElementsWindow::Jeu);
            }

        }
        int cpt = 0;
        for (Case& uneCase : terrain )
        {
            if ( uneCase.getOccupe() )
                cpt++;
        }

        // placePositionableIJ ( ijSelection.x ,ijSelection.y, *PolygonRose, cote, offSetX,  offSetY);
        //app.draw(*PolygonRose);


        window.draw(fondView,EnumElementsWindow::Menu);
        window.draw(bouton1,EnumElementsWindow::Menu);
        window.draw(bouton2,EnumElementsWindow::Menu);



        window.getWindow().display();


    }
    return 0;
}
开发者ID:GrosLapin,项目名称:Version2014,代码行数:101,代码来源:main.cpp


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