Skip to content

ln985/LuoKeMapTracker

Repository files navigation

🗺️ 洛克王国世界 - 手机地图实时追踪 (Android)

基于 MediaProjection 实时屏幕捕获 + ORB 特征匹配 的 Android 悬浮窗地图追踪器。

自动识别游戏内小地图,在完整大地图上实时标注玩家位置、朝向和置信度。

✨ 功能

  • 🚀 实时屏幕捕获 — MediaProjection API,截取游戏画面
  • 👁️ 自动裁剪小地图 — 固定区域裁剪,可拖动校准
  • 🧭 ORB 特征匹配 — CPU 实时运行,不需要 GPU
  • 🌊 CLAHE 弱纹理增强 — 针对海洋/纯色区域增强特征
  • 📍 悬浮窗实时标注 — 在游戏上方显示位置 + 朝向 + 置信度
  • 🎈 展开/收起悬浮窗 — 双击切换 mini 模式和展开地图模式
  • 🎮 自动检测游戏 — 打开洛克王国自动开始追踪
  • 🗺️ 自动获取地图 — 支持本地导入和网络下载
  • 💎 资源点叠加 — NPC、怪物、采集点、副本等实时标注
  • 惯性导航 — 短暂丢失时保持上一次位置
  • 🎨 置信度可视化 — 绿色(高) / 黄色(中) / 红色(低)
  • 🎯 位置平滑 — 指数平滑消除位置抖动

📲 安装

方式一:GitHub Actions 自动构建(推荐)

  1. Fork 本仓库
  2. 进入 Actions → Build APK → Run workflow
  3. 等待构建完成,从 Artifacts 下载 APK
  4. 安装到手机

方式二:本地构建

git clone https://github.com/你的用户名/LuoKeMapTracker.git
cd LuoKeMapTracker
./gradlew assembleDebug
# APK 位于 app/build/outputs/apk/debug/app-debug.apk

📱 使用方法

第 1 步:导入大地图

两种方式:

  • 本地选择:打开 App → 点击「📁 从本地选择大地图」
  • 网络下载:点击「🌐 从网络下载地图」→ 输入地图 URL

💡 地图越清晰、分辨率越高,匹配精度越好

第 2 步:开启自动检测(推荐)

打开「自动检测」开关后:

  • App 会自动监控游戏是否启动
  • 游戏打开时自动开始追踪
  • 游戏关闭时自动停止

第 3 步:校准小地图位置

用 SeekBar 调整小地图在屏幕上的裁剪区域:

参数 说明
X 偏移 小地图左边到屏幕左边的距离
Y 偏移 小地图顶部到屏幕顶部的距离
宽度 小地图区域的宽度
高度 小地图区域的高度

校准技巧: 先在游戏中截一张图,对照图片调整参数。

第 4 步:启动追踪

  1. 点击「🚀 开始追踪」
  2. 授予悬浮窗权限
  3. 授予屏幕录制权限
  4. 切回游戏
  5. 悬浮窗会实时显示你在大地图上的位置 🎯

悬浮窗操作

  • 拖动:按住拖拽移动位置
  • 展开/收起:双击切换 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+)

📄 License

MIT

About

洛克王国世界地图追踪

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages