2012-03-04 38 views
0

當使用SFML 1.6時,我遇到了一個小問題,我知道有一個簡單的解決方案,但我目前無法想到它/一直沒能找到答案研究。C++ SFML 1.6使用鼠標的Sprite位置

我知道我必須使用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);