正文

游戏数学(23)

精通C#游戏编程 作者:(英)斯库勒


 

8.3.2  矩形

矩形的相交测试代码不需要非常完善。我们需要的矩形只有按钮,而按钮总是会与轴对齐。这样,代码就比处理任意对齐的矩形时简单了很多。

如果点在矩形左边的右侧,右边的左侧,上边的下侧,底边的上侧,那么该点在矩形内。可以采取与圆的示例相似的方法从视觉上显示矩形与点的关系。

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

}


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号