Смена спрайта при наведении мыши
Как мне сменить спрайт при наведении на исходный? У меня там плашка с пунктом меню, и при наведении на неё нужно сменить её на другую. Я проверил: у меня происходит зацикливание, в консоли постоянно 1 пишет. Булевская переменная в if - это нужная переменная, ее не надо трогать, можно добавлять свои булевские. Первый if для наглядности, как отображаются спрайты на экране, но, возможно, и в нем нужно что-то поменять. drawmainstartgamebuttonON / OFF - как раз те самые спрайты которые нужно менять между собой, startgamebuttonspron - отображает исходный спрайт на экран, это то же, что и startgamebutton.drawmainstartgamebuttonON();.
Я новичок в SFML, прошу совета.
if (loadlobbymousebutton && ev.type == sf::Event::MouseButtonPressed && ev.mouseButton.button == sf::Mouse::Left) { // Проверка на нажание ЛКМ
loadlobbymousebutton = false;
win.clear();
mainmenu.drawmainmenu();
TagTextoncinemaloadloobysprite.setPosition(525, 10);
TagTextoncinemaloadloobysprite.setScale(2.5f, 2.5f);
win.draw(TagTextoncinemaloadloobysprite);
startgamebutton.drawmainstartgamebuttonON();
settingsbutton.drawmainsettingsbutton();
faqbutton.drawmainFAQ();
exitbutton.drawmainExit();
win.display();
}
if (!loadlobbymousebutton && ev.type == sf::Event::MouseMoved) {
if (startgamebutton.startgamebuttonspron.getGlobalBounds().contains(sf::Mouse::getPosition(win).x, sf::Mouse::getPosition(win).y)) {
startgamebutton.drawmainstartgamebuttonOFF();
cout << "1" << endl;
}
else {
startgamebutton.drawmainstartgamebuttonON();
cout << "2" << endl;
}