MMORPG大型游戏设计与开发(攻击区域 扇形)
距离上次发布已经有了很长一段时间,期间由于各种原因没有更新这方面的技术分享,在这里深表遗憾。在MMO或其他的游戏中,会有针对各种形状的计算,通常在攻击区域里不会很复杂,常见的为矩形、圆形、扇形。今天分享的是判断一个目标点是否在扇形内的计算,用到的是比较简单的运算,高效率的算法我很尽快更新。 数学知识 在这里需要大家回顾一下初中以及高中的代数和平面几何的知识,想必大部分的朋友在这方面和我一样几乎忘记了或是对这些数学知识感觉有些头痛。不过大家没有必要担心,在实际运用中,我们都不会涉及太复杂的计算,因为我们不需要追求的十分精确。 但是在以下内容中,大家需要知道一些基本的定理和公式: 勾股定理、余弦定理。 需要了解弧度和角度的一些转换: 角度 = 弧度 * 180.0 / ∏ 一些数学函数: atan2、acos等。 中心线: 以中心线顺、逆时针展开半角,形成一个完整的目标扇形区域。 极坐标概念: 如上图坐标点A的平面坐标为(7.96, 5.43),对应的极坐标为(ρ, θ) 相对坐标的概念: 在扇形的计算中,我们的X轴与Y轴的方向与原点的的X轴和Y轴平行,在上图中,如果以A点作为中心点,那么B的相对坐标为(xb - xa, yb - ya)。 扇形与点的关系 示例图1: 必要的数据: 原点A(攻击者坐标)、方向点B