SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Проблемма при возвращении в меню › Ответ в теме: Проблемма при возвращении в меню
наверное проблема с текстурами кнопок
При запуске программы показывается меню и там все нормально работает, а после отработки функции игры и возвращении в это же меню уже не работает. Вот код функции:
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
bool menu(RenderWindow &window,int &numLevel) { Texture menuTexture1,menuTexture2,menuTexture3,aboutTexture,menuBackground; menuTexture1.loadFromFile("images/start.png"); menuTexture2.loadFromFile("images/credits.png"); menuTexture3.loadFromFile("images/exit.png"); menuBackground.loadFromFile("images/background.png"); Sprite menu1(menuTexture1),menu2(menuTexture2),menu3(menuTexture3),about(aboutTexture),menuBg(menuBackground); bool isMenu = true; int menuNum = 0; menu1.setPosition(100,30); menu2.setPosition(100,90); menu3.setPosition(100,150); menuBg.setPosition(0,0); while(isMenu) { menu1.setColor(Color::White); menu2.setColor(Color::White); menu3.setColor(Color::White); menuNum = 0; window.clear(Color(129,181,221)); if(IntRect(100,30,300,50).contains(Mouse::getPosition(window))) { menu1.setColor(Color::Blue); menuNum = 1; } if(IntRect(100,90,300,50).contains(Mouse::getPosition(window))) { menu2.setColor(Color::Blue); menuNum = 2; } if(IntRect(100,150,300,50).contains(Mouse::getPosition(window))) { menu3.setColor(Color::Blue); menuNum = 3; } if(Mouse::isButtonPressed(Mouse::Left)) { switch(menuNum) { case 1: startGame(window,numLevel); break; case 2: break; case 3: window.close(); isMenu = false; return false; } } window.draw(menuBg); window.draw(menu1); window.draw(menu2); window.draw(menu3); window.display(); } } |
Вот так меню выглядит до вызова startGame();
https://yadi.sk/i/qb-Io1J3uHmhr
А вот так после: