Danke für die schnelle Hilfe, aber leider funktioniert das bei mir nicht. Wenn ich das Fenster nun vergrößere kann ich gar nix mehr markieren. Also ob mein FloatRect iwo außerhalb liegen würe
.
Hier mal der vollständige Code...
sf::FloatRect spriteRectangle(const sf::Text &sprite)
{
return sf::FloatRect(sprite.getPosition().x ,
sprite.getPosition().y ,
sprite.getGlobalBounds().width,
sprite.getGlobalBounds().height);
}
int main()
{
sf::RenderWindow App(sf::VideoMode(800,600),"SFML Graphics");
App.setFramerateLimit(30);
double y;
y = App.getSize().y;
//Check ob Bilder geladen werden können
sf::Font font1;
if (!font1.loadFromFile("quake.ttf"))
return EXIT_FAILURE;
sf::Text text1("SuperTUX", font1, 60);
text1.setStyle(sf::Text::Bold);
text1.setColor(sf::Color::White);
text1.setPosition(App.getSize().x/2.f - text1.getGlobalBounds().width/2.f, 0.1*y);
sf::Font font2;
if (!font2.loadFromFile("quake.ttf"))
return EXIT_FAILURE;
sf::Text text2("Spiel starten", font2, 50);
text2.setColor(sf::Color::White);
text2.setPosition(App.getSize().x/2.f - text2.getGlobalBounds().width/2.f, 0.3*y);
...
sf::Vector2f mausposition(0.f, 0.f); //Vektor für Mausposition
// Mainloop
while (App.isOpen())
{
// Eventliste
sf::Event Event;
while (App.pollEvent(Event))
{
// Close window : exit
if (Event.type == sf::Event::Closed || sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
App.close();
if(Event.type == sf::Event::MouseMoved)
{
mausposition.x = Event.mouseMove.x;
mausposition.y = Event.mouseMove.y;
}
//Was passiert wenn man auf Bilder klickt --> Auswahl Charackter
if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
{
if(spriteRectangle(text1).contains(mausposition.x, mausposition.y))
{
App.close();
}
}
if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
{
if(spriteRectangle(text2).contains(mausposition.x, mausposition.y))
{
App.close();
}
}
if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
{
if(spriteRectangle(text3).contains(mausposition.x, mausposition.y))
{
App.close();
}
}
if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
{
if(spriteRectangle(text4).contains(mausposition.x, mausposition.y))
{
App.close();
}
}
...
//Prüfe Mausposition
//if(spriteRectangle(text2).contains(App.convertCoords(sf::Mouse::getPosition(App)) -> Funktioniert nicht
if(spriteRectangle(text2).contains(App.convertCoords(sf::Mouse::getPosition(App))))
{
text2.setColor(sf::Color(255,255,255));
text3.setColor(sf::Color(255,255,255,12
);
text4.setColor(sf::Color(255,255,255,12
);
text5.setColor(sf::Color(255,255,255,12
);
text6.setColor(sf::Color(255,255,255,12
);
text7.setColor(sf::Color(255,255,255,12
);
}
if(spriteRectangle(text3).contains(mausposition.x, mausposition.y))
{
text3.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
);
text4.setColor(sf::Color(255,255,255,12
);
text5.setColor(sf::Color(255,255,255,12
);
text6.setColor(sf::Color(255,255,255,12
);
text7.setColor(sf::Color(255,255,255,12
);
}
if(spriteRectangle(text4).contains(mausposition.x, mausposition.y))
{
text4.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
);
text3.setColor(sf::Color(255,255,255,12
);
text5.setColor(sf::Color(255,255,255,12
);
text6.setColor(sf::Color(255,255,255,12
);
text7.setColor(sf::Color(255,255,255,12
);
}
if(spriteRectangle(text5).contains(mausposition.x, mausposition.y))
{
text5.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
);
text3.setColor(sf::Color(255,255,255,12
);
text4.setColor(sf::Color(255,255,255,12
);
text6.setColor(sf::Color(255,255,255,12
);
text7.setColor(sf::Color(255,255,255,12
);
}
if(spriteRectangle(text6).contains(mausposition.x, mausposition.y))
{
text6.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
);
text3.setColor(sf::Color(255,255,255,12
);
text4.setColor(sf::Color(255,255,255,12
);
text5.setColor(sf::Color(255,255,255,12
);
text7.setColor(sf::Color(255,255,255,12
);
}
if(spriteRectangle(text7).contains(mausposition.x, mausposition.y))
{
text7.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
);
text3.setColor(sf::Color(255,255,255,12
);
text5.setColor(sf::Color(255,255,255,12
);
text4.setColor(sf::Color(255,255,255,12
);
text6.setColor(sf::Color(255,255,255,12
);
}
if(
!spriteRectangle(text2).contains(mausposition.x, mausposition.y)
&&!spriteRectangle(text3).contains(mausposition.x, mausposition.y)
&&!spriteRectangle(text4).contains(mausposition.x, mausposition.y)
&&!spriteRectangle(text5).contains(mausposition.x, mausposition.y)
&&!spriteRectangle(text6).contains(mausposition.x, mausposition.y)
&&!spriteRectangle(text7).contains(mausposition.x, mausposition.y))
{
text2.setColor(sf::Color(255,255,255,12
);
text3.setColor(sf::Color(255,255,255,12
);
text4.setColor(sf::Color(255,255,255,12
);
text5.setColor(sf::Color(255,255,255,12
);
text6.setColor(sf::Color(255,255,255,12
);
text7.setColor(sf::Color(255,255,255,12
);
}
}
App.clear();
App.draw(text1);
App.draw(text2);
App.draw(text3);
App.draw(text4);
App.draw(text5);
App.draw(text6);
App.draw(text7);
// Render the frame on screen
App.display();
}
return EXIT_SUCCESS;
}
Danke für die Hilfe!