我用 ArkTS 思路做了个通勤游戏化 App——把每天走的路变成金色大道

【Claude Code · VibeCoding】13|实战演示:水果消消乐 VibeCoding 用「水果消消乐」走一遍 VibeCoding:提示、生成、试玩、改需求、再生成。 阅读详情

解决了什么问题

每天地铁口到公司 1.2 公里,走了快 300 次,我想"看见"这件事。跑步 App 只关心配速心率,地图 App 只想给我导航。我不需要谁告诉我跑得快不快,我就想看到"这条路被我踩熟了"这个事实本身。找了一圈没有满意的产品,干脆自己写了一个,叫「像素征途」。

做完之后回头看,这个需求其实特别适合 HarmonyOS 的场景化能力——持续定位、低功耗后台、本地数据安全,这些正好是鸿蒙在系统层面做得比较深的方向。下面聊聊我的实现思路和踩过的坑,给同样在做 LBS 类应用的鸿蒙开发者一些参考。

核心玩法:像素格子点亮 + 颜色升级

整个地图被切成像素格子。走过一个格子,它从灰色点亮。同一个格子走的次数越多,颜色逐级升级——走得最多的路最终变成金色。我通勤那条线现在已经是一整条金色大道了,看着有种奇怪的满足感。

除了点亮地图,还有一套养成系统:8×8 的领地征服(把家附近的格子全部点亮算占领)、科技树(解锁更高效的点亮方式)、徽章收集。本质上是把日常出行做成了一个单机游戏,不比配速、不社交、不 UGC,纯粹自己玩。

技术细节:定位追踪的三档策略

位置追踪是这类 App 最大的坑——既要省电又要不断线,尤其高铁场景时速 300+ 还要持续记录格子。

我最终做了三档模式:省电、平衡、持续。核心思路是根据场景动态调整定位精度和过滤距离。iOS 端用的 CLLocationManager,如果用 HarmonyOS 的 geoLocationManager 来实现类似逻辑,大致是这样的思路:

func switchTrackingMode(_ mode: TrackingMode) {
    switch mode {
        case .powerSave:
                locationManager.desiredAccuracy = kCLAccuracyHundredMeters
                        locationManager.distanceFilter = 200
                            case .balanced:
                                    locationManager.desiredAccuracy = kCLAccuracyNearestTenMeters
                                            locationManager.distanceFilter = 50
                                                case .continuous:
                                                        locationManager.desiredAccuracy = kCLAccuracyBest
                                                                locationManager.distanceFilter = 10
                                                                        locationManager.allowsBackgroundLocationUpdates = true
                                                                            }
                                                                            }
                                                                            ```
省电档日常通勤够用,持续档坐高铁也不掉线。实测 iPhone 15 连续记录 8 小时掉电约 12%,可以接受。鸿蒙这边如果用 continuous 定位请求配合 `@ohos.geoLocationManager`,在后台存活和功耗控制上理论表现会更好,因为 HarmonyOS 对后台任务有系统级的调度优化。

## 设计决策:数据全部本地存储

没有服务器,没有账号系统,轨迹数据只在用户手机里。我自己对位置隐私比较敏感,不想让任何人(包括我这个开发者)知道用户去过哪里。iOS 端用 Core Data 做本地持久化,iCloud 同步是可选项,走的也是用户自己的 iCloud 容器。

如果做鸿蒙版本,这块可以用 ArkData(关系型数据库)做本地持久化,分布式数据同步走用户自己的华为云空间,思路完全一致。而且 HarmonyOS 的数据安全分级机制天然适合这种纯本地敏感数据的场景。

## 格子映射:GPS 坐标到像素的投影问题

格子的升级算法不复杂,难的是怎么把 GPS 坐标高效映射到像素格子。地球不是平的,直接用经纬度等分会在高纬度地区变形严重。最后选了 Web Mercator 投影做格子划分,在国内纬度范围(18°N-54°N)误差可控。这个算法跟平台无关,ArkTS 里实现一遍就行。

## 和世界迷雾的区别

用了一个月,说实话比预期有意思。出差刻意多走两步去点亮新格子,周末 citywalk 变成了"开地图迷雾"。我觉得它比 Fog of World(世界迷雾)更适合日常通勤党。世界迷雾偏旅行打卡,格子太大,通勤那点距离根本看不出变化。像素征途的格子更细,而且"重复走会升级"这个机制让日常路线也有成长感,不是只有去新地方才有反馈。

## 下载和交流

App Store 搜「像素征途」,或者直接访问:https://apps.apple.com/app/像素征途

免费下载,高级功能(科技树完整解锁、更多徽章)走内购。

目前是 iOS 版本先行,我一直在关注 HarmonyOS NEXT 的 MapKit 和定位能力成熟度,后续有计划用 ArkUI 做鸿蒙原生版本。如果你也在做鸿蒙开发,特别是 LBS 类或者地图 overlay 渲染相关的,欢迎评论区交流,一起踩坑。
华为AR3260路由器NAT回流配置实战:从WEB界面到命令行的完整避坑指南 本文详细解析了华为AR3260路由器NAT回流(Hairpin NAT)的配置原理与实战方法。针对内网用户无法通过公网地址访问内部服务器的常见问题,文章不仅剖析了WEB界面配置的常见报错原因,更提供了清晰、可靠且一劳永逸的命令行(CLI)配置方案与排错指南,帮助企业网络工程师彻底解决内外网访问不一致的难题。 阅读详情

相关推荐

lgv20刷twrp_LG港版v20 root

这是LG港版v20 root,整理了一下有关LG港版v20的官方固件包了,有没有需要的呢,这里把固件包整理一下也是方便大家以后好下载了,因此有一些机友还是不知道在哪里下载官方的rom包,在这里说的固件rom包也就是原版的系统包了,大家可以放心的使用,这些系统包也都是支持线刷的,大家下载下来解压出来根据里面的相关教程来操作就可以了,很简单的,如果你也需要的话就一起来看看吧。软件提示注意!! 此过程会...

weixin_33212263的博客 5387

花颜研究所 · 美妆电商:基于HarmonyOS ArkTS API 24移动端美妆零售应用深度解析,ArkTS声明式UI + @Observed数据模型 + @Builder组件封装的经典架构模式

健身管理类应用与之前分析的外卖、招聘等应用有本质差异——它的核心数据不是"交易"或"任务",而是"时间序列的身体状态数据":每次训练有时长、卡路里、组数、重量;每次饮食有热量、蛋白质、碳水、脂肪;每周有运动时长趋势图。这些数据的共同特征是"随时间积累,用户需要横向对比和趋势分析"。这导致健身App的数据层设计必须从第一天就考虑"历史数据查询"和"多维度聚合"的需求,而非仅关注当前单条记录的增删改查。健身应用的用户行为模式也有独特之处:用户使用健身App的目标是"坚持",而不是"一次性完成任务"。这意味着激励

jin123322的博客 268

Setup&Hold互卡问题和Useful Skew的影响

setup和hold互卡问题分析

godping的博客 5092

【Unity知识速递】第7期 Unity 6.6 深度解析:WebGPU 正式版与 WebAssembly64,Web 游戏的内存革命

如何启用 Wasm64?需要注意的是,Wasm64 需要浏览器支持 Memory64 提案,目前主流浏览器的最新版本都已支持。一句话总结: Unity 6.6 用 WebGPU 转正、Wasm64 16GB 内存和渐进式加载三连击,将 Web 游戏的体验天花板又往上推了一大截——Web 平台不再是"妥协版",正在成为真正的一等公民。Unity 6.6 新增了 WebAssembly64(Wasm64) 构建选项,这可能是本次更新中对 Web 游戏开发者影响最大的一项升级。

crystal_WJT的博客 393

LabView实战:精准实现float到十六进制的转换与高低位拆分

本文详细讲解了在LabVIEW中实现单精度浮点数(float)到十六进制字符串转换,并进行高低16位拆分的实战方法。针对工业通信中设备协议要求,核心使用强制类型转换(Type Cast)获取内存原始数据,避免数值转换错误,并提供了完整的VI构建步骤、交叉验证技巧及常见踩坑经验(如字节序、字符串格式),确保数据通信的准确性。

assembly8low的博客 1765

一文解释电路中常用电子元器件应用和选型01

电容和二极管是电路中最常用的两个电子元器件,种类和系列众多,这里简单总结一下应用场景和选型方式 电容(Capacitor) 电容的种类(20种以上)和应用非常广泛,但是我经常遇到的无非就是下面这几种: 应用 1.隔直流。 2.旁路(去耦) 3.耦合 4.滤波 5.温度补偿 6.计时 7.调谐 8.整流 9.储能 种类 1. 陶瓷电容 2. 云母电容 3. 铝电解电容 4. 钽

weixin_43904073的博客 2236

启元 T1 Pro 触摸交互实战:基于事件订阅的启元机器人限时反应力小游戏

拿到启元 T1 Pro 后第一个技能做的是纯互动游戏:拍背拍胸六种触摸动作读出事件,机器人随机出题、玩家 3 秒内拍对部位,三轮计分、战绩跨局持久化。全文重心不在玩法而在三个真实的 ROS2 bug:周期定时器被当一次性用(犯三次)、sim 注册定时器不进 spin、mock 不干净导致冷却判定失真——以及最终"删掉状态机只留时间戳"的返工。附 --sim 验证、.rpk 打包、PrimeConsole 部署与 PrimeHub 上架全流程。

月亮永悬不落,剑指巅峰 1万+

深入解析MTK平台hang_detect机制:从原理到实战调试

本文深入解析了MTK平台hang_detect机制的工作原理与实战调试技巧。作为系统健康监测的核心机制,hang_detect通过多层级监控体系检测应用层和内核层异常,结合Kernel_exception等日志信息快速定位问题。文章详细介绍了典型问题案例、调试方法及预防措施,帮助开发者提升MTK平台系统稳定性调试能力。

purple的博客 1004

我给 DeepSeek 大肥鱼做了一款马里奥式闯关游戏

当全网都在把大肥鱼做成直播虚拟主播的时候,我决定给她做一款横版闯关游戏。

2301_79028807的博客 880

基于Python的网贷平台数据爬虫实战:Scrapy+Selenium+反反爬策略

python复制下载# items.py本文详细介绍了如何使用Python构建一个完整的网贷平台数据爬虫系统,涵盖了从基础爬取到高级反反爬策略的全套解决方案。我们使用了Scrapy框架作为基础,结合Selenium处理动态内容,实现了多种反反爬策略,并探讨了分布式爬虫的实现方式。机器学习识别验证码基于深度学习的网页结构变化检测自动化行为模拟的更精细控制基于Kubernetes的弹性爬虫集群。

2201_76125261的博客 1560

Python 3.13.7 (64-bit)安装弹窗提示:Setup failed:0x80070643 - 安装时发生严重错误...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 2109

【AI实战】Claude-Code-Game-Studios中文版使用教程:把Claude Code改造成49个Agent的游戏工作室

原项目 31393 stars 说明这个方向是被验证过的——用 AI 做游戏的人确实需要结构。中文版把门槛降了一截,尤其是对不习惯读长篇英文文档的人。翻译质量我看了 README 部分,术语处理得比较稳,没有那种机翻的生硬感。至于它能不能真的帮你做出一个游戏,我的样本不多,只能说流程这一层它是扎实的,剩下的还是看你自己愿不愿意在每个关卡上认真做决定。工具能拦住硬编码,拦不住你想偷懒的心。

yangshun的博客 177

基于Simulink的永磁同步电机容错控制(缺相容错)

本文基于Simulink平台,详细介绍了永磁同步电机(PMSM)缺相容错控制的仿真实现方法。针对逆变器开路故障导致的缺相问题,提出"检测-重构-补偿"三阶段控制策略:采用电流阈值法快速检测故障(<5ms),重构αβ坐标系实现两相矢量控制,并通过谐波电流注入抑制转矩脉动(<8%)。仿真结果表明,该方法能有效维持故障后电机运行,转速波动<3%,满足电动汽车等关键应用的可靠性需求。文章包含完整的Simulink建模步骤、MATLAB函数代码及参数设置,为工程实践提供了可复现的

xiaoheshang_123的博客 146

节日小游戏活动快速落地与高效转化技巧

比如,把平时验证过的消消乐、大转盘、接红包等经典玩法作为底子,只需要针对特定的节日(像春节、中秋)或者门店庆典,快速替换一套应景的UI素材和文案,再植入专属的节日福利。这种“旧瓶装新酒”的方式,能把开发周期压缩到极致,确保活动能踩着流量的爆发点准时上线。特别是对于实体门店,游戏通关后的奖励最好能直接引导到线下核销,比如“满100减20”的优惠券,这样能把线上的流量精准地拽进店里,形成实实在在的成交。这种基于熟人关系的推荐,比硬广有效得多,能迅速在朋友圈和社群里铺开,实现低成本的流量获取。

Hxzyxkf2016的博客 179

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Claude Code做Unity项目移植(三): 使用SKILL进行自动化Git提交

本文介绍基于ClaudeCodeSkill的Unity自动化Git提交助手——unity-git-commit,通过四大模块实现提交前的智能检查与安全修复:1)校验Git仓库状态;2)验证Unity项目文件(如排除Library/Temp,确保.meta文件完整);3)依据可配置的C#命名规范自动识别并安全修复命名问题(避免序列化、反射等高危场景误改);4)生成精准提交注释,但强制人工确认。全程仅本地commit,不自动推送或破坏性操作,保障安全。核心思想为“机械化工作交AI,关键决策留人工”,显著提升提交

Aman1984的博客 637

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

PyBox有什么好用的数织小游戏吗?

我们今天梳理了市面上主流的数织解谜工具,包括在线网站和本地应用,并且重点介绍了 PyBox 中的数织 Nonogram。在线解谜网站**适合快速上手、免费体验,但不适合长时间离线使用。本地解谜工具**提供了离线体验,方便专注解题,但可能会涉及安装和广告问题。PyBox的数织 Nonogram**则在绿色无广告、免安装、完全开源、及DIY定制等方面有着明显优势,非常适合想要一个干净、可控、无干扰的游戏环境的用户。如果你追求极致无干扰、注重隐私、喜欢轻量应用,那么数织 Nonogram 绝对值得一试。

Sanmsung的博客 123

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Windows远程桌面实现之二十:实现 moonlight 游戏串流协议之(一)

本文介绍在xdisp_virt中集成Moonlight游戏串流协议的实现过程。基于开源项目Sunshine逆向的GameStream协议,作者从零研究并自研实现Moonlight服务端网络通信部分,涵盖mDNS设备发现、nvhttp/nvhttps加密通信、nvrtsp协议交互及三类UDP数据通道(视频、音频、控制)。重点解决多客户端并发问题,采用串行处理机制确保连接一致性。通过自定义证书验证与密钥管理,完成配对与安全通信,最终实现低延迟、高性能的游戏串流体验,显著优于WebRTC浏览器方案。

fanxiushu的专栏 163

12、【MOD开发】【骑砍2】运行内存:游戏里的 pagefile 与虚拟内存

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除。

HIT_Weston的博客 417

二进制木马免杀-游戏嵌套与图标替换

二进制木马免杀-游戏嵌套与图标替换

2503_94637398的博客 231

Unity UGUI布局组件(LayoutGroup、ContentSizeFitter、LayoutElement)详解

UGUI 自动布局是一套的 C# 排版系统,和 Transform 原生锚点完全隔离;整套布局;最终输出只有对 RectTransform 的sizeDelta的赋值。

m0_63330263的博客 242

mark 黑塞《玻璃球游戏》

【最近在读黑塞的《玻璃球游戏》-“ai预言“ - 优快云 App】

2502_94306440的博客 175

Kubernetes 的资源开销、适用边界,以及游戏与有状态负载的工程现实

Kubernetes 不是成本优化工具,而是一把运维规模化的杠杆。它的核心价值在于:当工作负载足够异构、运维复杂度足够高、团队能力足够匹配时,将原本指数级增长的运维成本拉回线性甚至常数级。它通过精细调度回收资源碎片,通过声明式 API 消除手工操作的边际成本,通过生态工具链实现跨环境的一致性。但杠杆的前提是——你得有足够重的负载来撬动。游戏服务端:外围服务放心上 K8s,对局制专用服用 Agones,持久世界要慎之又慎,核心战斗别把容器当虚拟机用。数据库。

神棍之路 264

给 AI 一台贴图工厂:TexGen 程序化贴图引擎与 MCP 架构实践

但它很快就撞墙——一张贴图往往是多层叠加的:底色 + 噪波 + 砖缝 + 暗角 + 高光。所以 TexGen 的核心抽象是图层栈 + JSON 指令表codeTgSpec├── 几何: shape(8 种) + center / size / radius / rotation / cornerRadius├── 绘制: fill(7 种) + color / edgeColor / 渐变 + pattern + warp└── 合成: blend(11 种) + opacity / blur。

邹杭特的博客 326

【Unity基础】Unity输入与Time.deltaTime的使用原则

本文从 mousePositionDelta 与 GetAxis 出发,分析了Time.deltaTime的使用原则

Tealc 357

【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南

本文介绍了如何在Unity项目里同时支持2D和3D场景

Tealc 409

游戏支付通道安全吗?靠谱吗?

资质之外,商家还可以查看通道方的清算背景和合作机构,多方信息交叉验证,判断更准确,正规的通道方经得起多方核实,信息越透明,合作越放心,这是选择安全通道的基本功课,交叉验证后的判断更可靠,正规通道的信息透明,查证过程本身就是信心的来源,合作更踏实,每一步都有依据,核实越细,信心越足。安全配合要落到实处,商家如实上报异常情况,通道方及时处理反馈,双方信息互通,风险才能及时化解,安全不是单方面的承诺,而是双方协作的结果,配合越紧密,保障越到位,双方信息互通,安全网越牢固,风险越小,信息互通有无,风险共同化解。

jingyun_2026的博客 81
上一篇: 我用 ArkTS 的思路做了一个精力管理 App:把每天的状态算成电池电量
下一篇: 翻相册想不起去过哪——这个问题被我用一个鸿蒙/iOS App 解决了
SameX-4869
博客等级 码龄17年 3354粉丝 657原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值