制造一个圆圈推开别人?

时间:2013-03-04 17:18:52

标签: c++ actionscript-3 math

对于你们来说,我的问题可能很简单,我只是编程的新手,所以是的。

我想在屏幕的中心有一个圆圈,然后我希望当玩家靠近它时,他会被推开,因为他来自的方向, 这是我做的一个小图,更清晰image

红色圆圈是来自不同方向的玩家, 绿色圆圈是障碍。 箭头表示玩家应该向哪个方向推进 玩家仅在x,y轴上移动

非常感谢你的时间

1 个答案:

答案 0 :(得分:0)

将笛卡尔式屏幕系统中的玩家坐标(红色圆圈中心)转换为中心障碍物(绿色圆圈)的原点。

为此目的选择复数可能是一个解决方案:b。给出对象的半径和公差半径('接近')。 迭代玩家坐标并比较它们的大小(红色圆心与原点的距离)。当距离大于其半径+公差的总和时,它们不被认为是接近的。否则调整幅度。将输出坐标转换回屏幕会产生结果。

return a.Equals(b) ? a : Math.Min(a, b);