2012-03-04 8 views
0

SFML 1.6을 사용하는 경우 작은 문제가 발생합니다. 쉬운 해결책이 있지만 현재 생각할 수 없거나 다음을 통해 답변을 찾을 수 없습니다. 연구.C++ SFML 1.6 Sprite Position with Mouse

나는 스프라이트를 TransformToGlobal (someVector)을 사용하여 전역 위치로 변환해야한다는 것을 알고 있지만 어디에 넣어야할지 모른다.

다음은 글로벌 위치에 있지 않아 작동하지 않는 코드 예제입니다.

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

나는 sprite.TransformToGlobal (sprite.GetPosition()); 그 전에는 잘되었지만 잘 돌아 가지 않았습니다.

답변

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);