Karson CN 2022-05-01 20:23 采纳率: 0%
浏览 14
已结题

python关于映射从像中获取原像

最近在尝试做游戏的模组开发,在进行距离判断的时候遇到了一些问题
当我获得到一堆生物的ID的时候,通过ID获取到他们每个生物的坐标计算出其与玩家的距离后
我想计算出距离最近的生物,返回他们的ID
但是怎么获取到对应值出现了一点问题

这个是我目前的解决方案,但是感觉有点蠢,而且当多个生物距离相同的时候会出现bug

    def GetNearlyEntity(self, entity_list, player):        
        player_pos = GetPos(player)              # 获取玩家坐标
        dist_dict = {}
        for entityId in entity_list:      
            entity_pos = GetPos(entityId)        # 获取生物坐标
            dist = Cala_3D_Dist(entity_pos, player_pos)    # 获取距离
            dist_dict[dist] = entityId
        return dist_dict[min(dist_dict.keys())]        # 返回ID

我尝试过另一种方案是

    def GetNearlyEntity(self, entity_list, player):        
        player_pos = GetPos(player)              # 获取玩家坐标
        dist_list = []
        for entityId in entity_list:      
            entity_pos = GetPos(entityId)        # 获取生物坐标
            dist = Cala_3D_Dist(entity_pos, player_pos)
            dist_list.append(dist)
        temp = map(lambda x,y:[x, y],entity_list, dist_list)

当我获取到这个tempList的时候[["生物ID1""距离1"],["生物ID2""距离2"]]
我就不知道该怎么处理这个temp,让我计算出最先的距离,然后返回对应的生物ID

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月9日
    • 修改了问题 5月1日
    • 修改了问题 5月1日
    • 创建了问题 5月1日

    悬赏问题

    • ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
    • ¥15 如何在arcgis中导出拓扑关系表
    • ¥15 处理数据集文本挖掘代码
    • ¥15 matlab2017
    • ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41
    • ¥15 AnolisOs7.9如何安装 Qt_5.14.2的运行库
    • ¥20 求:怎么实现qt与pcie通信
    • ¥50 前后端数据顺序不一致问题,如何解决?(相关搜索:数据结构)
    • ¥15 基于蒙特卡罗法的中介效应点估计代码
    • ¥15 罗技G293和UE5.3