基于 MediaProjection 实时屏幕捕获 + ORB 特征匹配 的 Android 悬浮窗地图追踪器。
自动识别游戏内小地图,在完整大地图上实时标注玩家位置、朝向和置信度。
- 🚀 实时屏幕捕获 — MediaProjection API,截取游戏画面
- 👁️ 自动裁剪小地图 — 固定区域裁剪,可拖动校准
- 🧭 ORB 特征匹配 — CPU 实时运行,不需要 GPU
- 🌊 CLAHE 弱纹理增强 — 针对海洋/纯色区域增强特征
- 📍 悬浮窗实时标注 — 在游戏上方显示位置 + 朝向 + 置信度
- 🎈 展开/收起悬浮窗 — 双击切换 mini 模式和展开地图模式
- 🎮 自动检测游戏 — 打开洛克王国自动开始追踪
- 🗺️ 自动获取地图 — 支持本地导入和网络下载
- 💎 资源点叠加 — NPC、怪物、采集点、副本等实时标注
- ⚡ 惯性导航 — 短暂丢失时保持上一次位置
- 🎨 置信度可视化 — 绿色(高) / 黄色(中) / 红色(低)
- 🎯 位置平滑 — 指数平滑消除位置抖动
- Fork 本仓库
- 进入 Actions → Build APK → Run workflow
- 等待构建完成,从 Artifacts 下载 APK
- 安装到手机
git clone https://github.com/你的用户名/LuoKeMapTracker.git
cd LuoKeMapTracker
./gradlew assembleDebug
# APK 位于 app/build/outputs/apk/debug/app-debug.apk两种方式:
- 本地选择:打开 App → 点击「📁 从本地选择大地图」
- 网络下载:点击「🌐 从网络下载地图」→ 输入地图 URL
💡 地图越清晰、分辨率越高,匹配精度越好
打开「自动检测」开关后:
- App 会自动监控游戏是否启动
- 游戏打开时自动开始追踪
- 游戏关闭时自动停止
用 SeekBar 调整小地图在屏幕上的裁剪区域:
| 参数 | 说明 |
|---|---|
| X 偏移 | 小地图左边到屏幕左边的距离 |
| Y 偏移 | 小地图顶部到屏幕顶部的距离 |
| 宽度 | 小地图区域的宽度 |
| 高度 | 小地图区域的高度 |
校准技巧: 先在游戏中截一张图,对照图片调整参数。
- 点击「🚀 开始追踪」
- 授予悬浮窗权限
- 授予屏幕录制权限
- 切回游戏
- 悬浮窗会实时显示你在大地图上的位置 🎯
- 拖动:按住拖拽移动位置
- 展开/收起:双击切换 mini 模式和展开地图
- 资源点开关:点击 📍 按钮切换资源点显示
┌──────────────────────────────────────────────────┐
│ MainActivity │
│ 权限管理 / 地图导入 / 游戏检测 / 资源过滤 │
└───────────┬──────────────────────┬────────────────┘
│ │
┌────────▼────────┐ ┌────────▼─────────────┐
│ ScreenCapture │ │ FloatingWindow │
│ Service │ │ Service │
│ │ │ │
│ MediaProjection │ │ 展开模式: 大地图+标注 │
│ ↓ │ │ 收起模式: mini指南针 │
│ ImageReader │ │ ↑ │
│ ↓ │ │ 资源点叠加渲染 │
│ 裁剪小地图 │ │ 位置+朝向+置信度 │
│ ↓ │ └───────────────────────┘
│ ORB 特征检测 │ ↑
│ ↓ │ 广播 ACTION_MATCH_RESULT
│ CLAHE 增强 │
│ ↓ │
│ KNN + RANSAC │
│ ↓ │
│ 单应矩阵定位 │
│ ↓ │
│ 位置平滑 │
└─────────────────┘
┌──────────────────┐
│ GameDetector │
│ 游戏启动监控 │──→ 自动启停追踪
│ UsageStats API │
└──────────────────┘
┌──────────────────┐
│ MapRepository │
│ 地图数据管理 │──→ 自动加载/下载/缓存
│ 资源点数据库 │
└──────────────────┘
| 参数 | 默认值 | 说明 |
|---|---|---|
| ORB 特征点数 | 5000 | 更多 = 更准但更慢 |
| 匹配间隔 | 200ms | 即 5fps |
| 置信度阈值 | 0.3 | 低于此值视为匹配失败 |
| RANSAC 阈值 | 5.0 | 越小越严格 |
| 平滑系数 | 0.3 | 越大响应越快但越抖 |
App 内置了洛克王国世界的主要资源点数据,包括:
| 类型 | 说明 | 颜色 |
|---|---|---|
| 🧙 NPC | 功能性NPC | 橙色 |
| 🔥 怪物 | 可战斗怪物 | 红色 |
| 🌿 采集点 | 材料采集 | 绿色 |
| 🌀 传送点 | 区域传送 | 蓝色 |
| 🕳️ 副本入口 | 地下城 | 紫色 |
| 🧪 商店 | 购买道具 | 黄色 |
| 📋 任务点 | 任务接取 | 青色 |
| 🏰 地标 | 地标建筑 | 灰色 |
可在设置中按类型过滤显示。
- Android 8.0 (API 26) 及以上
- 2GB+ RAM
- 不需要 root
- 需要每次手动校准小地图位置(不同手机分辨率不同)
- 大面积纯色区域(如海洋中心)可能短暂跟丢
- 游戏更新后如果小地图位置变了,需要重新校准
- 游戏自动检测需要授予「使用情况访问」权限(Android 10+)
MIT