mota-js/docs/V2.0.md
2018-05-10 00:08:42 +08:00

90 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# V2.0版本介绍
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
目前样板已经更新到V2.0版本以上本章将对V2.0的一些内容进行介绍。
请确保已经看过前面的几个文档2.0都有部分更新),前面已经描述过的东西这里将不再赘述。
也欢迎通过看B站的视频教程来具体了解2.0版本的使用方法。
## 目录结构的改变
在1.x中所有数据和逻辑都是一体的例如怪物数据和怪物伤害计算公式等等。这导致样板的版本更新时会十分不便。
在2.0中我们将数据和逻辑进行了分离拆分成了libs和project两个目录。
- libs目录为游戏核心库文件包括一些游戏逻辑等内容
- project目录为针对每个塔的目录是和游戏逻辑是分离的。
我们只需要修改project目录下的各项内容而无需去动libs目录有特殊需求除外
将来如果想把塔迁移到新的版本上也只需要迁移project即可。
另外一点的就是我们将libs目录中的core.js进行了拆分从而使每个文件的具体工作更加一目了然也避免了接近6K行的大文件会导致打开IDE的卡顿问题。
## 全GUI造塔
在1.X版本中我们提供了一个地图编辑器。但是它的功能十分弱只能进行绘图的功能实际的各项操作还是需要通过VSCode打开js文件实际进行编写代码。
但是在2.0中我们大大拓展了地图编辑器的功能从而达到了“全GUI造塔”的功能用户再也不用手动打开任何一个文件进行编辑了。
GUI界面分为`地图编辑器``事件编辑器`和`文本编辑器`。
!> 即使现在可以全GUI造塔也强烈建议对1.X的造塔方式进行了解因为这是一切的基础。
### 地图编辑器
地图编辑器分为三个区域,左侧的`编辑区`,中间的`画布区`,右侧的`素材区`。
画布区下方有切换地图和编辑器模式的下拉菜单,点击`保存地图`后画布的内容才会真正写入到js文件中。
在素材区点击图块时会选中该图块此时tips会显示该图块的信息编辑区会进入图块属性模式怪物或物品可以直接在里面编辑数值。如果图块的数字和ID没有被定义则可以直接在左侧定义**定义新图块后需要保存并刷新页面后才能生效**。
在tips中有图块信息时在画布上点击或拖拽可以把图块画上去可以使用ctrl+Z撤销操作以及对应的ctrl+Y恢复撤销。擦除方块可以使用素材区最左上角的擦除块。
点击界面中的空白tips中的图块信息会被清空此时再点击画布上的点则编辑器会进入地图选点模式。此模式下可以编辑改点的`events`,`afterBattle`,`changeFloor`等事件或者是`canMove`来改变各方向的通行状态。
切换地图会使编辑区进入楼层属性模式,这里可以修改首次到达该楼层时会触发的事件`firstArrive`,楼层显示的名称,默认的前景背景图片,默认天气和色调等等。
!> 这里不允许编辑楼层的ID需要修改ID的场合请直接改js文件并保持三个标识符完全一致。`data.js`中的`floorIds`也需要对应进行修改。
全塔属性中编辑整个塔为单位的属性,例如起始剧情`startText``name`提供哪些难度主角的起始属性全局商店各种数值以及系统FLAG等。**创建新塔时需要认真编辑这里面的所有选项。**
脚本编辑模式可以修改常用的需要更改的函数。例如,给不同的难度设置不同的内容`setInitData`,加点`addPoint`,以及修改游戏中的关于界面`drawAbout`等等。
追加素材模式可以导入一个图片到该标签的画板中,然后依次点击画板中的图块,点追加就可以按顺序把这些图片添加到对应的画布区素材的最下方,**需要刷新来生效**。
地图编辑模式中可以导入来自地图生成器的地图数组,同时创建新楼层需要在这里通过另存为来实现,可以点清除地图把另存为出的新楼层清空。
!> 编辑区的表格可以直接修改,推荐通过双击,在事件编辑器和文本编辑器中进行编辑。编辑区中的修改需要点保存才会生效。
### 事件编辑器
地图选点中的事件类表格,以及楼层属性中的`firstArrive`和全塔属性的`startText`,在双击时会进入事件编辑器,是由[antlr-blockly](https://github.com/zhaouv/antlr-blockly)生成的图块式的可视化编辑器.
把左侧的方块拖到面板中下方就会实时的显示对应的js的代码(以及数值不正确时的提示).
每个方块点击右键会展开一个菜单,点帮助可以跳转到此文档中对应的内容。利用好复制功能可以极大提高编辑的效率。注释选项请不要使用,编辑器并不会保留这里的注释。
`template`中提供了一些模板事件,例如战前剧情,打怪开门。
`显示文章`的两个方块,以及`自动剧情文本``选项`和`自定义JS脚本`这5个方块可以通过双击在文本编辑器中(以多行的方式)编辑其中的文字。
### 文本编辑器
事件编辑器之外的内容双击后由文本编辑器来编辑是有js高亮支持的多行文本编辑器[CodeMirror](https://github.com/codemirror/CodeMirror)点confirm即可使编辑的文本替换到表格中。
### 拓展地图编辑器
> 面向有一定编程基础的用户
修改`_server/`下的`*comment.js`可以让地图编辑器对自己添加的属性有更好的支持.例如:
+ 给`comment.js`中`enemys`加入新的键值对,就可以更方便的给怪物在UI界面中添加对应的值.
+ 在`data.comment.js`中把自己添加的内容标记为叶节点,不再在表格中展开到最末端.
地图编辑器的部分API见`_server/README.md`
## 部分事件和API更新
在2.0中有部分的事件和API存在更新也增加了包括48x32素材的支持在这里将不再赘述请仔细阅读前面的几个文档进行了解。