- 开发中
- 添加音乐、音效(doing)
- 铺量完成第一关(doing)
- 回合进度条
- 结束回合按钮
- 反击
- 双击
- 会心一击
- 防御
- 重构
- 行动菜单的UI和逻辑
- 一开始是否需要弹出菜单
- 菜单的样式与展现
- 将View从Scene的代码中分离出来
- battle的流程控制逻辑和画面显示逻辑分开
- 移动范围阴影和攻击范围阴影放在Map中?
- 图片资源atlas
- 重新整理坐标系相关代码
- 动画系统用状态机重构
- 每个动画分为 xxxStart xxx xxxComplete三部分
- 行动菜单的UI和逻辑
- 新功能
- 当前鼠标所在格子表示
- 存档/读档
- 存档格式
- 读写逻辑
- 剧情条件判定逻辑
- 位置判定
- 血量判定
- 胜败判定
- 对话系统
- 地图
- 小地图
- 地图编辑器
- 战役编辑器
- 地形InfoBox
- 战斗动画
- 防御动画
- 反击流程
- 伤害计算公式
- 法术攻击
- 其他可能的操作方式的处理
- 长按
- 双击
- 缩放
- 动画帧速不稳定,有时候有点卡导致衔接不畅
- MAP.focus bug
- 有时候shade表示位置不正确
- touchend事件的坐标是以touchstart被触发时的坐标为准的
- action的time比实际播放的帧数长会有助于解决动画不稳定的问题?
- 用Chrome一帧一帧的debug
- 用链式回调的方法处理组合动画
- 部分se, bgm因为文件大暂不添加
- 加入了反击,并调整了攻击动画流程
- 调整了动画
- 重构了shade,添加了移动终端用的UI
- MAP.focus功能
- 重新开始按钮
- 可以攻击友军单位(fixed)
- 点击事件死循环bug(fixed)
- 注意enchant.js中的设定是, 子节点的事件会自动传递到父节点上。 所以从父节点向子节点传递事件时要小心。
- AI遇到不可移动的情况会卡住(fixed)
- 有时候单位边框有黑线(fixed)
- 移动攻击AI
- 添加了一些基本音效
- 地图移动时,InfoBox的位置不对(fixed)
- 地图拖拽操作需要限制其只在某些状态下可用(fixed)
- 战斗状态控制
- 完善点击事件状态机(fixed)
- 防止多重点击(fixed)
- 修正了bug若干
- 开始制作第一关
- “取消移动”功能(done)
- 回合切换过场动画(done)
- 回合切换过场动画
- 升级数值变化
- 升级动画动作有异常(fixed)
- 一次获得经验值超过100时经验条表现异常(fixed)
- AI框架
- 敌人AI
- Dummy
- Hold Position
- 新增Grid类,抽象出Map中的部分逻辑
- 改写了getAvailAtkGrid的逻辑
- 改写了getAvailGrid的逻辑
- 可移动地形判定有异常(fixed)
- 初步AI框架
- header的通用函数调试
- 在Map中的getAvailGrids用i, j代替x, y以便计算
- 整合了stats.js
- 完整的关卡逻辑(done)
- 回合开始
- 行动->行动完毕
- 敌方回合
- 完成了升级和死亡动画
- 将攻击动画和InfoBox动画串联起来
- 需要追加死亡、防御、升级等等情况
- 将地图逻辑分离出来
- 移动范围和攻击范围逻辑分开
- 是否在地图上的判断
- 可否移动判断
- 消耗移动力判断
- 将一部分单位动画整合到Unit中
- 包含多个角色的动画比如attack仍然在battle中
- InfoBox
- 地图拖动
- 完成了攻击、受伤动画
- 修正了地图格子错乱的问题
- 还需要解决攻击格子的listner覆盖了移动格子的listner的问题
- 考虑了一下,UI还是最好将代码与配置分开。
- View单独配置在一个文件里
- 考虑到现在UI的量不大,这个工程相对比较复杂,留到以后再实现
- 做完了大概是这个感觉
{ class: "InfoBox", frame: [x, y, w, h], children: [ ] }
- 看了一下ui.enchant.js感觉有一些还是可以用的。可以直接移植过来。
- 现在的主要工作是把battle.js里的UI操作抽象成单独的类。为以后InfoBox的工作做准备
- 在Canvas层实现UI,理由
- 有整体感
- 不用适配不同浏览器的差异
- 快(未验证)
-
将大文件拆分成小文件。
-
整理所有常数和配置,放于const.js和config.js
-
关于UI可以先看一下enchant.js的相关插件
-
改动了原来的部分逻辑,没有进行整体调试
-
对于基本属性的操作最好也改成enchant.js中的get/set写法,例如:
text: { get: function() { return this._text; },
set: function(text) { this._text = text; if (!enchant.CanvasLayer) { this._element.innerHTML = text; }
}
},
- 重写了原来的移动阴影相关逻辑。现在会更简洁一些。(未debug)
- 程序开始变大,最终需要至少拆分成如下几个部分
- config.js 包括读入配置文件,初始化全局变量等等
- battle.js 战斗主逻辑
- chara.js 任务基本逻辑,属性计算逻辑
- 使用enchant.js重写了基础类。包括Battle类和Chara类。
- Battle类管辖战斗中所有操作。
- Chara类主要是各单位的基本操作,包括基本动画的设定
- 重新组织了架构。新的架构中:
- Battle类在战斗中统管全局,包含一个Map类和多个Chara类。
- 需要涉及超过单个类的方法都放到Battle类中去解决。
- 目前完成的部分:人物的基本动画
- 接下来的要完成的部分:
- 地图相关函数。需要首先理解enchant.js中地图的实现和用法。
- 状态显示框的构建及相关动画。
- 基本的组合动画。移动->攻击->受伤->行动完毕
- 基本的框架逻辑。我方行动->敌方行动->回合结束->下一回合...->战斗结束。