8.3.2 矩形
矩形的相交測(cè)試代碼不需要非常完善。我們需要的矩形只有按鈕,而按鈕總是會(huì)與軸對(duì)齊。這樣,代碼就比處理任意對(duì)齊的矩形時(shí)簡(jiǎn)單了很多。
如果點(diǎn)在矩形左邊的右側(cè),右邊的左側(cè),上邊的下側(cè),底邊的上側(cè),那么該點(diǎn)在矩形內(nèi)??梢圆扇∨c圓的示例相似的方法從視覺上顯示矩形與點(diǎn)的關(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
}