在Hash中找到最接近的Vector2以单击

时间:2014-03-24 03:54:52

标签: java input hashmap libgdx

我有一个HashMap,其中坏人是一个包含给定badguy的所有信息的对象。

现在,我试图找出基于用户点击检索badguy的最有效方法。

例如:

如果用户点击屏幕,我需要检查它是否在我的HashMap中的某个Vector2的范围内。如果是,请返回badguy。

所有badguys都具有与badguy.boundingBox()描述的相同大小,并且首先想到的方法是通过用户单击(Vector2 userClick),然后运行我的键集像这样的hashmap:

for( Entry<Vector2, BadGuy> badGuy : badGuyHash.entrySet() ) {
     if( badGuy.getKey().boundingBox().contains(userClick) ) {
         return badGuy.getValue();
     }
}

*请注意,我使用Libgdx并且contains()方法是Rectangle的成员,如果给定的Vector2在调用Rectangle内,则返回true。

是否有更好的方法可以使用启发式检查用户点击是否在badguy上,例如只检查在特定点击范围内的哈希成员?或者,用于检查匹配的badguy的时间是如此微不足道,以至于使得额外的精简无意义?

我期望此哈希随时包含的大多数键值对小于200。

0 个答案:

没有答案