Canvas 2D 程序化绘制与实时交互技术研究
这是一个个人独立开发的技术研究项目。采用纯前端技术栈,探索 Canvas 2D 程序化绘制 在实时交互场景中的表现力与性能边界。 所有视觉元素均通过 Phaser Graphics API 以纸笔手绘风格实时生成,不使用任何外部图片素材。
项目研究重点包括:多智能体路径规划、实时碰撞处理、 基于地形数据的动态寻路算法、以及纯前端离线应用架构方案。
探索在无纹理/无精灵图的情况下,通过 Canvas Graphics API 实时绘制动态元素,研究不同视口比例下的渲染效率、帧率稳定性与视觉一致性。
在多智能体动态碰撞环境中实现 A* 路径规划,结合动态阻挡检测、路径重算、寻路定时器控制等机制,研究实时场景下路径规划算法的性能与鲁棒性。
基于线段相交测试实现实时视线遮挡(LOS)判定,支持多遮挡物环境下的分段遮挡查询,研究其在不同密度障碍场景下的计算开销。
所有计算逻辑、数据存储、渲染均在浏览器端完成,研究 PWA + Service Worker 方案下的单机离线应用实现路径,包括资源预缓存、版本管理、跨会话状态持久化。
基于 Phaser Scene 的多场景路由管理,负责场景生命周期与状态传递
交互逻辑(寻路/碰撞/状态更新)与渲染循环分离设计,帧增量驱动更新
基于网格的地形数据管理,支持动态障碍物查询、视线检测、高地/减速区域
多智能体(Multi-Agent)注册、销毁、批量更新,A* 路径规划与碰撞推挤
Vitest 单元测试覆盖核心交互逻辑,验证多智能体运动和状态更新的正确性
localStorage 状态持久化 + 版本迁移兼容 + PWA Service Worker 离线缓存
技术研究的尽头,是把它做成一款能玩的小游戏。《纸上雄兵》是 基于上述 Canvas 2D 程序化绘制方案开发的微信小游戏——复古手绘水墨风, 火柴人实时对战的轻量策略游戏。所有画面实时生成,零美术素材。
微信内搜索 「纸上雄兵」,或扫码下方二维码即可开战。
50 关 PVE 主线。新手接引,层层闯关领取军饷,逐步解锁兵种与科技。
一命到底的极限挑战。攻城门、拆箭塔、扛守军,刷资源看你能撑几波。
核心玩法。攻城占地、城主争夺、属城经营、势力榜角逐——这片水墨天下由你说了算。
开局自动部署 3 盾 1 矛——盾顶在前面吃箭,矛输出。多用盾兵克制敌方弓箭手,第一关轻松拿下。
先通关升级攒实力,再去世界地图打无主城(无主城难度最低),站稳脚跟后再逐鹿天下。
该项目是个人独立开发的技术研究项目。 旨在探索 Canvas 2D 程序化绘制在实时交互场景中的应用边界, 以及无外部资源的纯前端渲染方案的可行性与表现力。 项目侧重于算法实现、渲染性能与前端架构设计的实践验证。
技术研究的成果最终长成了一款小游戏——《纸上雄兵》,欢迎到微信搜索体验。