2015-10-13 29 views
1

我在矩形的閉合瓷磚貼圖中有一個旋轉的Rectangle。 檢查玩家(是旋轉的矩形)是否與瓷磚地圖的矩形之一相交的最佳方法是什麼?從遊戲裏面如何檢查兩個矩形(一個是旋轉的)是否在SFML中相交

圖片,以便更好地顯示在地圖的樣子:You can see the player (Blue rect) and the map borders (Red rects). The blue rect must not leave outside the red rectarea

如果它的事項,玩家的類型是sf::Shape和地圖的數據是int數組中。

回答

3

SFML不提供碰撞檢測,它只有方法來檢查兩個軸對齊的矩形是否相交。如果你需要更復雜的東西,你將不得不實施自己。

如果您不需要精確檢測,則可以使用地圖的矩形測試Sprite.getGlobalBounds().intersects(...)。 如果你想要理想的碰撞檢測,你有更多的選擇:

  • 像素完美的碰撞。首先檢查邊界框是否與地圖平鋪相交,並檢查所有不透明像素是否存在碰撞。不是很快但很容易實施,可能適合您的情況。
  • 數學方法,還有更多的,但看看分離軸定理。如果你只限於矩形(或/和圓形和凸多邊形),它會最好。
相關問題