基于JavaScript的六边形战术战斗引擎:精灵与动画实现
这款基于JavaScript的精灵引擎在点朝上的六边形网格(偶数行偏移)上实现流畅的单位动画、移动与交互。支持屏幕尺寸变化时的动态缩放,包括移动端旋转适配。高级API可轻松发出移动至目标六边形或攻击敌方单位等指令,无需深入底层逻辑。
底层功能涵盖切换精灵动画、平滑移动物体、将单位放置于六边形格子以及路径寻路。算法自动高亮可移动与可攻击的格子。动画包含行走、攻击、受伤和死亡状态——阵亡单位仍留在战场上。
不同动画根据情境自适应播放速度:静止状态较慢,而攻击等动态动作则更快,增强视觉节奏感。
桌面与移动端操作方式
单位移动:点击目标六边形后,路径自动高亮显示,如同经典《英雄无敌》类游戏。移动端无光标时,双击六边形确认选择。
攻击操作:点击敌方占据的六边形,系统展示可攻击位置。再次点击触发攻击;点击其他区域则取消选择。对于跨多格的单位,每个六边形划分为多个区域以消除歧义。优化建议:对敌方单位进行二次点击,从最近的有效格子发起攻击。
攻击时机附带50%概率直接击杀对手,提升战斗策略性。
AI生成精灵素材
所有精灵均通过ChatGPT生成(免费与付费版本效果一致)。背景完全由提示词驱动;精灵需后期处理:去除背景、居中调整、手动优化动画帧。
常见问题包括:
- 行走循环中腿部交替动作缺失——需手动修正。
- 精灵换手持武器(如精灵骑手)出现错位。
- 弓箭手动画存在瑕疵:箭矢无弓或弓无弦。
- 骑士死亡动画出现奇幻扭曲。
- 图像上意外叠加文字。
修正提示无效,必须重新生成新会话。后期处理包括裁剪元素、旋转碎片、融合接缝。
未来开发路线图
下一步计划:
- 单位属性(攻击、防御、生命值)、伤害计算公式、行动顺序机制(独立于速度,用于平衡,例如投石车)。
- 将单位分组为矩形阵列,并添加健康条(使用DOM进度条组件)。
- 悬停显示单位信息的工具提示。
- 远程单位配备弹道动画(箭矢、石块、光束)。
- 飞行单位可覆盖其他单位。
- 为单人对战场景引入AI智能。
- 基于客户端-服务器模型的联网PvP架构。
- 支持两格攻击技能(如龙、独眼巨人)。
核心亮点
- 点朝上偶数行偏移六边形网格,内置路径寻路与单位放置算法。
- 自适应动画系统,支持变速播放与响应式缩放。
- 跨平台控制:桌面端点击,移动端轻触/双击。
- AI生成精灵,强制要求后期处理流程。
- 高层级战术指令API,简化开发流程。
演示项目已部署于Netlify与itch.io。本项目聚焦战术对抗玩法,暂不包含完整战役模式。
— Editorial Team
暂无评论。