根据浮生梦老师前端课程内容,地图显示怪物坐标的功能主要在`MiniMap.lua`文件中实现。
具体位置在`MiniMap.UpdateMonsters()`函数中,该函数通过`SL:GetMetaValue("MAP_GET_MONSTERS")`获取怪物列表,然后计算并显示坐标。
关键代码示例:
```lua
-- 更新怪物坐标
function MiniMap.UpdateMonsters()
GUI:removeAllChildren(MiniMap._nodeMonster)
local monsters = SL:GetMetaValue("MAP_GET_MONSTERS")
for i, v in pairs(monsters) do
local mapX = tonumber(v.x) or 1
local mapY = tonumber(v.y) or 1
local nodePos = MiniMap.CalcMiniMapPos({x = mapX, y = mapY})
if nodePos then
local node = GUI:Node_Create(MiniMap._nodeMonster, "node_monster"..i, nodePos.x, nodePos.y)
-- 显示怪物图标
local path = (v.time and v.time > 0) and "icon_xdtzy_10_6.png" or "icon_xdtzy_10_1.png"
local icon = GUI:Image_Create(node, "icon", 0, 0, "res/private/minimap/"..path)
GUI:setAnchorPoint(icon, 0.5, 0.5)
GUI:setScale(icon, 0.7)
end
end
end
```
这个函数会在小地图上显示所有怪物的位置,通过`CalcMiniMapPos`函数将地图坐标转换为小地图坐标。