

在某个游戏的地图中,我们可以通过查看系统提示信息,来确定一个物品P是否处在某一个我们自己给定的平面矩形形区域D之中,所以可以根据多次改变D来求出精确位置的上下限。
但是这个过程十分繁琐,所以在初中时,为了提升游戏体验,我决定利用程序进行简化。但是奈何当时尚未掌握任何技术能力,所以想法一直留到大学。
去年大学入学时我对朋友说了这个想法,他十分惊奇地说:

你的想法很独特啊。
一年之后的今天我决定开始做出这个Python项目,不过目前没有确定使用什么技术栈,不过项目的大致层次有了。
检测的基本原理就是,首先玩家给定一个范围,范围由四个数值组成,包括矩形区域的起始坐标start元组,即(x,z);以及从start位置到对角位置的坐标的变化量deltas元组,即(dx,dz)。
初始状态下使用(0,0)作为lower_limit,使用四个坐标绝对值为一百万的点中的一个作为upper_limit,但是这个需要通过初步检测来确定范围,即dx=±1000000,dz=±1000000的正方形。
比如说使用原点作为基准点检测时,就会使用正方形作为范围D进行检测,当边长为a的正方形中出现了物体P,但是边长为a+10000的正方形中没有出现时,我们就可以认为初步找到了P,并把upper_limit和lower_limit赋值为a+10000和a。
此后就可以通过缩小z的方式,来划定最终范围了。也就是保持x的upper_limit,lower_limit不动之后去动z,使用跟上边一样的原理,最终得到一个10000×10000的正方形范围
我计划构建一个可以进行缩放,拖拽的二维平面画布,画布上包含一个平面直角坐标系。根据游戏中的坐标系,横轴是x,纵轴是z,纵轴正方向是南方,横轴正方向是东方(而y轴在游戏中表示高度,高度的范围仅400,因此无需检测)。
使用右键点击画布可以弹出一个菜单,菜单上包含了该点的坐标,是否以当前位置为原点进行象限检测,是否检测原点与该点构成的矩形区域等功能。
GUI当中可以提供一个按钮,通过点击的方式来确认选择范围中是否含有物体。并且要提供一个复制粘贴的文本框,以便用户便利地将检测范围的想法转化到游戏中与游戏进行交互。除此之外就是一个显示当前选择范围的文本框。
如果做出初步内容,后续可以考虑添加距离检测的功能,也就是四个参数(x,z,r,rm)。其中r表示半径的上限,rm表示半径的下限。这个功能只需勾股定理即可,但是由于意义不大而且加入太过于臃肿,所以后期考虑。
可以通过直接导出游戏的数据内容,这样无需用户手动点击按钮,程序可以几乎自动地实现位置的查找,用户只需要通过程序搭建好的语句与游戏进行交互即可。但是这样会被怀疑为恶意攻击服务器,因此有可能不能实施,不过这是我一开始的想法。

非常不錯