塔防 - 检查敌人距离?

时间:2015-11-16 14:19:52

标签: if-statement nested nested-loops

这个问题可能是嵌套for循环/ if语句的重复,但请耐心等待。我正在完成塔防的过程,我需要检查敌人是否在塔的范围内。我可以做某种物理圈,但我觉得最好的方法是检查每个敌人的塔的距离,看它是否在半径范围内。问题是,如果有500个敌人'和30个塔,每帧15,000个if语句。这会是性能沉重吗?我知道的唯一方法就是尝试这些:

  • 仅检查每个x帧(if if循环10次而不是100次)
  • 做一些猜测 - 附近的塔将使用与他们相同的塔

有没有其他方法可以做到这一点,还是我的良好轨道?

1 个答案:

答案 0 :(得分:0)

每次检查时,所有敌人是否都会移动?您可以在每次敌人移动时重新计算,哪些塔位于该特定敌人的半径范围内,然后更新敌人列表,仅用于那些已经移动到敌人半径或其中的塔。你需要将每个敌人映射到一个塔楼列表,以及每个塔楼的敌人列表。