Отобразить выигрыш / проигрыш после изменений gameState (SFML Minesweeper) - PullRequest
0 голосов
/ 12 апреля 2020

Итак, я написал игру тральщика и сделал GUI с SFML, просто возникла проблема с отображением картины выигрыша / проигрыша, когда игрок заканчивает игру или проигрывает. Состояния игры установлены правильно, и они запускаются в нужные моменты, проблема в том, что изображения, которые я хочу отобразить, кажутся слишком большими, и в окне я вижу только их фон (например, верхний левый угол изображения). Есть ли способ масштабировать изображение до окна и полностью отобразить его в окне?

Конструктор:

minesweeperBoard* board;
sf::Texture t;

MSSFMLView::MSSFMLView(minesweeperBoard& board) {
    this->board = &board;
    t.loadFromFile("src/images/tiles.jpg");
    window.create(sf::VideoMode(32*this->board->getBoardWidth(), 32*this->board->getBoardHeight()), "Minesweeper");
}

Состояние игры, если триггер в игре l oop:

    if(board->state == GameState::FINISHED_WIN){
        t.loadFromFile("src/images/win.jpg");
        sf::Sprite s(t);
        s.scale(32*this->board->getBoardWidth(),32*this->board->getBoardHeight());
        window.draw(s);
        Sleep(1000);
        window.clear();
    }else if(board->state == GameState::FINISHED_LOSS){
        t.loadFromFile("src/images/lose.jpg");
        sf::Sprite s(t);
        s.scale(32*this->board->getBoardWidth(),32*this->board->getBoardHeight());
        window.draw(s);
        Sleep(1000);
        window.clear();
    }

Вот фотографии, которые я использую: https://imgur.com/a/KVCuyab 256x256 размер

...