Witam. Próbuję zrobić do gry menu początkowe z wybieraniem postaci. Menu polega na tym, że na środku widzimy wybraną (wczytaną ale póki co jeszcze się za to nie zabrałem) postać a pod nią dwa przyciski Play i HowToPlay. Pl i PR to punkty pojawiające się po bokach przy wybranym przycisku gdy na niego przejdziemy (to dla łatwiejszego zrozumienia kodu). Kiedy przechodzę już do wyboru postaci to kiedy chce by pokazała się następna ta wyświetla się ale tylko we fragmencie (jakby została obcięta o rozmiar poprzedniej) a opis postaci który ma się wyświetlać obok przy zmienianiu bohatera się nawarstwia.
#include <SFML/Graphics.hpp>
int main()
{
//tutaj wywołuję zmienne, tekstury itp.
sf::RenderWindow gra(sf::VideoMode(1, 1, 1), "16x32", sf::Style::Fullscreen);
while (gra.isOpen())
{
sf::Event start;
while (gra.pollEvent(start))
{
//Tu rysuję elementy tła
gra.draw(Choosenone);
gra.draw(description);
if (YourHero == 0) //jeśli nikt nie został wybrany
{
ChoosenOne.setTexture(NobodyChoosen_standing);
ChoosenOne.setPosition(642, 240);
ChoosenOne.setScale(0.1, 0.1);
description.setString("");
}
if (Chooseit == 1)
{
gra.draw(chooseit);
}
if (Chooseit2 == 1)
{
gra.draw(guide);
}
if (start.type == sf::Event::Closed)
gra.close();
if (start.type == sf::Event::KeyPressed && start.key.code == sf::Keyboard::Escape)
gra.close();
if (start.type == sf::Event::KeyPressed && start.key.code == sf::Keyboard::Up)
{
PL.setPosition(440, 550);
PR.setPosition(870, 550);
choosenbutton = 1;
}
if (start.type == sf::Event::KeyPressed && start.key.code == sf::Keyboard::Down)
{
PL.setPosition(440, 650);
PR.setPosition(870, 650);
choosenbutton = 2;
}
if (start.type == sf::Event::KeyPressed && start.key.code == sf::Keyboard::Enter && choosenbutton == 1 && YourVessel == 0)
{
if (YourHero == 0)
{
YourHero = 1;
}
Chooseit = 1;
startchoosed = 1;
}
if (start.type == sf::Event::KeyPressed && start.key.code == sf::Keyboard::Enter && choosenbutton == 2)
{
Chooseit2 = 1;
}
if (YourHero <= 0 && startchoosed == 1)
{
YourHero = 16;
}
if (YourHero >= 17 && startchoosed == 1)
{
YourHero = 1;
}
if (YourHero == 1 && startchoosed == 1)
{
ChoosenOne.setTexture(Hero1);
ChoosenOne.setPosition(642, 240);
ChoosenOne.setScale(0.05, 0.05);
description.setString("description1");
}
//analogicznie dla wszystkich postaci
if (YourHro == 16 && startchoosed == 1)
{
ChoosenOne.setTexture(Hero16);
ChoosenOne.setPosition(642, 240);
ChoosenOne.setScale(0.06, 0.06);
description.setString("description16");
}
if (start.type == sf::Event::KeyPressed && start.key.code == sf::Keyboard::Right && startchoosed == 1)
{
YourHero++;
}
if (start.type == sf::Event::KeyPressed && start.key.code == sf::Keyboard::Left && startchoosed == 1)
{
YourHero--;
}
gra.display();
}
Co zrobić by sprite wyświetlał teksturę w całości a napis się zmieniał nie nawarstwiał?