Exemple #1
0
void createLevel(CLevel& level, CText& levelText) {
    levelText.loadFont(FONT_PATH);
    levelText.setString("Level: "+numberToString(level.getLevel()));
    levelText.setCharacterSize(24);
    levelText.setColor(sf::Color::Magenta);
    levelText.setPosition(300,0);
}
Exemple #2
0
/* This function will update the level and the text related to it */
void nextLevel(CLevel& level, CText& text) {
    level.setLevel(level.getLevel()+1);
    level.setLenWord(level.getLenWord()+1);
    level.setPoints(level.getPoints()+level.getPoints());
    level.setPtsToNext(level.getPtsToNext()+level.getPtsToNext());
    text.setString("Level: "+numberToString(level.getLevel()));
}
Exemple #3
0
void RevealedElem::displayBoard(sf::RenderWindow& window, sf::Font& mainScreenFont)
{
    int i, j;// variabile intermediare pentru a parcurge toate celule
    //tablei de joc

    //X , Y variabile intermediare pentru parcurgearea saltata a tablei,
    //X,si Y reprezentand  coltul stang al fiecarei celule

    sf::CircleShape cerc(cellSize/2);
    cerc.setPointCount(25);

    CText numarMine;
    numarMine.setFont(mainScreenFont);
    numarMine.setSize(fontSize);

    CText semnIntrebare;
    semnIntrebare.setFont(mainScreenFont);
    semnIntrebare.setSize(fontSize);

    sf::Texture imgBomba;
    imgBomba.loadFromFile("data/images/bomb.png");
    sf::Transform transformareImagine;
    transformareImagine.scale(5,5);
    sf::Sprite bomba;
    bomba.setTexture(imgBomba);
    bomba.setOrigin(imgBomba.getSize().x / 2, imgBomba.getSize().y / 2);
    float bombScale = remap(fontSize , 1 , bomba.getLocalBounds().width, 0, 1);
    bomba.setScale(bombScale, bombScale);

    for(int Y = startGridY, i = 1; i <= size; Y +=cellSize, i++)
    {
        for(int X = startGridX, j = 1; j <= size; X += cellSize, j++)
        {
            switch(board[i][j])
            {

            case hidden:

                cerc.setPosition(X, Y);
                cerc.setFillColor(sf::Color::White);

                semnIntrebare.setColor(sf::Color::Black);
                semnIntrebare.setPosition(sf::Vector2f(X + cellSize/2, Y + cellSize/2));//
                semnIntrebare.setString("?");
                //semnIntrebare.setSize(20);
                semnIntrebare.centerTextOrigin();


                //std::cout << X << " " << Y << std::endl;
                break;
            case empty:

                cerc.setPosition(X, Y);
                cerc.setFillColor(sf::Color(209, 209, 209));
                //std::cout << X << " " << Y << std::endl;
                break;
            case mine:
                cerc.setPosition(X, Y);
                cerc.setFillColor(sf::Color::Red);
                bomba.setPosition(X + cellSize / 2, Y + cellSize / 2);
                break;
            default:

                cerc.setPosition(X, Y);
                cerc.setFillColor(sf::Color::Yellow);


                numarMine.setColor(sf::Color::Red);
                //numarMine.setSize(20);

                numarMine.setPosition(sf::Vector2f(X + cellSize/2, Y + cellSize/2));//
                std::stringstream strStream;
                strStream << board[i][j];
                std::string temp = strStream.str();
                numarMine.setString(temp.c_str());
                numarMine.centerTextOrigin();

            }
            window.draw(cerc);

            switch(board[i][j])
            {
                case empty:

                case mine:
                    window.draw(bomba);
                    break;
                case hidden:
                    semnIntrebare.draw(window);
                    break;
                default:
                    numarMine.draw(window);

            }

            // Setari temporare pentru a vedea daca pozitiile calculate
            // sunt corecte

        }
    }
    //std::cout << cellSize << std::endl;
}