3
我正在製作一個2D自上而下的地圖生成算法,其中我創建的所有房間都具有頂部/左側的點和底部/右側的點。所有房間都是長方形的,除了一些偶爾共用的牆壁以外,其他任何部分都不重疊。在邊界框碰撞中獲取碰撞點
我的問題是,當我有兩個房間,最後在他們之間共享一堵牆時,我該如何快速輕鬆地吐出由所述牆內的兩個房間共享的「瓷磚」(或點)列表?
我有種希望是這樣的:
private List<Point> SharedTiles (Point P1, Point P2, Point P3, Point P4)
{
/*
P1 = Top Left point of room1
P2 = Bottom Right point of room1
P3 = Top Left point of room2
P4 = Bottom Right point of room2
*/
List<Point> _SharedTiles = new List<Point>();
//Magic goes here...
return _SharedTiles;
}
哇,我甚至沒有注意到Rectangle.Intersect本身吐出一個矩形。我只是假設它是一個布爾值。謝謝您的幫助。 – Mythics
你並不完全錯誤。既有一個非靜態方法'Intersects()',它返回一個布爾值,還有一個靜態方法'Intersect()',它返回相交矩形。一個微妙的區別!請注意,如果沒有交集,'Interesect()'將返回一個空矩形。 –
+1000。我很高興有一個我可以哭的「矩形。交互式」方法。 –