gpt4 book ai didi

java - 根据二维距离从java hashmap获取

转载 作者:搜寻专家 更新时间:2023-11-01 08:13:46 24 4
gpt4 key购买 nike

我正在用很多单元在 android 中制作一个策略游戏,我已经到了需要检查每个对象相对于其他对象的位置,看看这两个对象是否足够接近,以至于它们应该开始斗争。现在,我可以确定两个单元是否足够接近的唯一方法是使用此方法:

public boolean inProximity(float x2, float y2) {
return Math.sqrt((x2 - x) * (x2 - x) + (y2 - y) * (y2 - y)) <= proximityRadius;
}

我不想将所有单元迭代 n 平方次。我正在查看一个 TreeMap 来存储位置,但是我将如何(如果可能的话)根据与一个单元的距离获取键?

最佳答案

您可能需要重新考虑此处的数据结构并查看四叉树。它们本质上允许您划分 2D 空间并进行碰撞检测,这似乎是您的用例。

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

只需在 java 四叉树上搜索一下就会对实现产生一些影响。我没有使用过它们中的任何一个,所以我不能真正保证它们,但这应该会给你一些继续下去的东西。

关于java - 根据二维距离从java hashmap获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6921405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com