0

由于AOE,area of​​ effect,永远是一个圆,我首先想到的就是计算地图中每个单元到圆心的距离,确定一个单元在圆的范围内公式 (X unit - X center ) 2 + (Y unit - Y center ) 2 < R 2,其中 R 是圆的半径。

显然,它不是一个有效的算法。或许可以先缩小计算面积,再用上面的公式来改进。但是计算仍然是耗时的操作,散列可能是解决这个问题的有效方法,而我实际上不知道该怎么做:(。我真的想知道游戏中使用了什么算法。

4

1 回答 1

1

这些可能会有所帮助:

碰撞检测,包围圈 http://mastrgamr.net/xna/xna-collision-detection-bounding-circle/

Bounding Box Collision Detection http://www.dreamincode.net/forums/topic/180069-xna-2d-bounding-box-collision-detection/

https://en.wikipedia.org/wiki/Quadtree

于 2013-10-06T17:05:01.283 回答