2014-10-09 75 views
-1

我一直在試圖獲得一個小的碰撞函數,以在不同的站點上找到工作。它適用於X軸,但不適用於Y軸。我的SFML碰撞函數出錯

bool getCollision(float firstObjectX, float firstObjectY, float firstObjectWidth, float firstObjectHeight, float secondObjectX, float secondObjectY, float secondObjectWidth, float secondObjectHeight) 
{ 
if(firstObjectX + firstObjectWidth > secondObjectX && firstObjectX < secondObjectX + secondObjectWidth) 
{ 
    if(firstObjectY + firstObjectHeight > secondObjectY && firstObjectY < secondObjectY + secondObjectHeight) 
    { 
     return true; 
    } 
} 
else 
{ 
    return false; 
} 

}   

與上面的代碼,當我碰到物體從左到右它的工作原理,只有當我打的其他項目。然而,當我在上升或下降時,只要它在同一個Y列中,它就表示我整個時間都有一次碰撞。

任何幫助將是偉大的。

回答

1

我居然找到一個更簡單的方法:

if (shape1.getGlobalBounds().intersects(shape.getGlobalBounds())){ 

        std::cout << "Collision"; 
       } 

這工作完全爲我所期待的事情。