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
![:dash:](wcf/images/smilies/dash.gif.pagespeed.ce.8-4R0CRx29.gif)
.
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
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text4.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text5.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text6.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text7.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
}
if(spriteRectangle(text3).contains(mausposition.x, mausposition.y))
{
text3.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text4.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text5.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text6.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text7.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
}
if(spriteRectangle(text4).contains(mausposition.x, mausposition.y))
{
text4.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text3.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text5.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text6.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text7.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
}
if(spriteRectangle(text5).contains(mausposition.x, mausposition.y))
{
text5.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text3.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text4.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text6.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text7.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
}
if(spriteRectangle(text6).contains(mausposition.x, mausposition.y))
{
text6.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text3.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text4.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text5.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text7.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
}
if(spriteRectangle(text7).contains(mausposition.x, mausposition.y))
{
text7.setColor(sf::Color(255,255,255));
text2.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text3.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text5.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text4.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text6.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
}
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
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text3.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text4.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text5.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text6.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
text7.setColor(sf::Color(255,255,255,12
![8)](wcf/images/smilies/cool.png.pagespeed.ce.zll9MGJZ58.png)
);
}
}
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!