Hi, i need Help, by the following problem:
I have a Sprite who present a touch Button. when i touch it, the color change. The problem is, that the full touch contact not on the Sprite is just next to it. I need to implement mapToPixelCoordinate to convert the Touch to world coordinates. Here is my code
int main(int argc, char *argv[])
{
sf::RenderWindow window(sf::VideoMode::getDesktopMode(), "Hello SFML");
sf::Sprite sprite;
sf::Texture tex;
sf::Texture tex2;
tex.loadFromFile("red.png");
tex2.loadFromFile("green.png");
sprite.setPosition(300, 700);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event));
sf::FloatRect frec = sprite.getGlobalBounds();
if(frec.contains(sf::Touch::getPosition(0).x, sf::Touch::getPosition(0).y)){
sprite.setTexture(tex);
}
else
{
sprite.setTexture(tex2);
}
window.clear(sf::Color(0, 0, 0));
window.draw(sprite);
window.display();
}
return 0;
}
Someone know how i do this? Maybe put this code insdie it? I
sf::Vector2i pixelPos = sf::Touch::getPosition(0, window);
sf::Vector2f worldPos = window.mapPixelToCoords(pixelPos);
dont know how to fix it in the right way