8.3.2 矩形
矩形的相交測試代碼不需要非常完善。我們需要的矩形只有按鈕,而按鈕總是會與軸對齊。這樣,代碼就比處理任意對齊的矩形時簡單了很多。
如果點在矩形左邊的右側(cè),右邊的左側(cè),上邊的下側(cè),底邊的上側(cè),那么該點在矩形內(nèi)??梢圆扇∨c圓的示例相似的方法從視覺上顯示矩形與點的關(guān)系。
class RectangleIntersectionState : IGameObject
{
Input _input;
Rectangle _rectangle = new Rectangle(new Vector(0,0,0), new Vector
(200, 200,0));
public RectangleIntersectionState(Input input)
{
_input = input;
}
#region IGameObject Members
public void Update(double elapsedTime)
{
if (_rectangle.Intersects(_input.MousePosition))
{
_rectangle.Color = new Color(1, 0, 0, 1);
}
else
{
// If the circle's not intersected turn it back to white.
_rectangle.Color = new Color(1, 1, 1, 1);
}
}
public void Render()
{
_rectangle.Render();
}
#endregion
}