C++ SFML 1.6 Положение спрайта с помощью мыши

При использовании SFML 1.6 я столкнулся с небольшой проблемой, и я знаю, что есть простое решение, но в настоящее время я не могу об этом подумать/не смог найти ответ с помощью исследований.

Я знаю, что мне нужно преобразовать спрайт в глобальную позицию, используя TransformToGlobal(someVector), но я не знаю, куда его поместить.

Вот пример моего кода, который я использую, который не работает, потому что он не находится в глобальной позиции.

if(sprite.GetSubRect().Contains(mouseX, mouseY))
    sprite.SetImage(someImage);
else
    sprite.SetImage(someOtherImage);

Я попытался добавить sprite.TransformToGlobal(sprite.GetPosition()); до этого, но он не работал, а также.


person user1062898    schedule 04.03.2012    source источник


Ответы (1)


Вы можете попробовать использовать преобразованную позицию мыши, а затем проверить, содержит ли спрайт мышь:

sf::Vector2f mousePos = App.ConvertCoords(App.GetInput().GetMouseX(), App.GetInput().GetMouseY());

if(sprite.GetSubRect().Contains(mousePos.x, mousePos.y))
    sprite.SetImage(someImage);
else
    sprite.SetImage(someOtherImage);
person priomsrb    schedule 14.03.2012