From 3f1a039c86ab7b456613214560a2780f81a4d46c Mon Sep 17 00:00:00 2001 From: oc Date: Tue, 6 Feb 2018 16:56:27 +0800 Subject: [PATCH] V1.4 --- README.md | 19 +++++++++++++++++++ libs/core.js | 16 +++++++++++++++- libs/ui.js | 13 ++++++++----- 快捷键说明.txt | 1 + 更新说明.txt | 1 + 5 files changed, 44 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2a03e535..a92fd36d 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏! ``` bash ├── /_server/ # 为可视化地图编辑器提供一些支持的目录 ├── /docs/ # 文档目录 +├── /animates/ # 动画目录 ├── /images/ # 所有图片素材目录 │ ├─ /常用素材/ # 可以被直接替换的素材 │ └─ *.png # 对应的某个具体的图片素材 @@ -32,6 +33,7 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏! │ └─ ui.js # UI绘制信息,主要负责绘制各个UI窗口。 ├── /sounds/ # 音效目录 ├── /常用工具/ # 一些常用工具,可以辅助造塔 +│ ├─ RM动画导出器.exe # 能从RMXP中导出动画,以供H5使用。 http://github.com/ckcz123/animate_export/ │ ├─ JS代码压缩工具.exe # 能对Javascript代码进行压缩和整合,从而减少IO请求量。 http://github.com/ckcz123/JSCompressor/ │ ├─ 便捷PS工具.exe # 能只用复制和粘贴来快速对素材进行PS操作。 http://github.com/ckcz123/ps/ │ ├─ 地图生成器.exe # 能从一张截图识别出来具体的数字数组,方便复刻已有的塔。 http://github.com/ckcz123/map_generator/ @@ -45,6 +47,23 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏! ## 更新说明 +### 2018.2.6 V1.4 + +* [x] 支持动画。 +* [x] 瞬间移动。 +* [x] 支持天气系统,可以在剧本中设置默认天气。 +* [x] 新增自定义事件-图片显示。 +* [x] 同时可以在剧本中设定多个背景素材。 +* [x] 剧情文本特性控制,人物的对话框效果。 +* [x] 单存档同步到服务器,下载到文件和读取。 +* [x] 键盘支持自动寻路操作。 +* [x] 浏览地图模式下可以查看怪物数据。 +* [x] 未成功打怪和开门则不自动存档。 +* [x] 重新支持楼梯穿透。 +* [x] 支持多结局,成绩将分开统计。 +* [x] 重构全局动画、行走动画和行走检测,大幅提升性能。 +* [x] 修复所有已知Bug。 + ### 2018.1.21 V1.3.2 * [x] 增加录像和回放功能。 diff --git a/libs/core.js b/libs/core.js index 05bdf4f3..2aceae5b 100644 --- a/libs/core.js +++ b/libs/core.js @@ -889,9 +889,11 @@ core.prototype.pressKey = function (keyCode) { ////// 根据按下键的code来执行一系列操作 ////// core.prototype.keyDown = function(keyCode) { if (core.isset(core.status.replay)&&core.status.replay.replaying) return; + /* if (core.isset(core.status.automaticRoute)&&core.status.automaticRoute.autoHeroMove) { core.stopAutomaticRoute(); } + */ if (core.status.lockControl) { // Ctrl跳过对话 if (keyCode==17) { @@ -1193,8 +1195,13 @@ core.prototype.keyUp = function(keyCode) { break; } - + + if (core.isset(core.status.automaticRoute)&&core.status.automaticRoute.autoHeroMove) { + core.stopAutomaticRoute(); + } + core.stopHero(); + } ////// 点击(触摸)事件按下时 ////// @@ -4215,6 +4222,13 @@ core.prototype.checkStatus = function (name, need, item) { core.prototype.openBook = function (need) { if (core.isset(core.status.replay)&&core.status.replay.replaying) return; + // 当前是book,且从“浏览地图”打开 + if (core.status.event.id == 'book' && core.isset(core.status.event.selection)) { + core.status.boxAnimateObjs = []; + core.ui.drawMaps(core.status.event.selection); + return; + } + // 从“浏览地图”页面打开 if (core.status.event.id=='viewMaps') { need=false; diff --git a/libs/ui.js b/libs/ui.js index 9541aa50..d96a1fa9 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -110,7 +110,9 @@ ui.prototype.drawTextBox = function(content) { content = core.replaceText(content); var background = core.canvas.ui.createPattern(core.material.ground, "repeat"); + core.status.boxAnimateObjs = []; core.clearMap('ui', 0, 0, 416, 416); + // var contents = content.split('\n'); // var contents = core.splitLines('ui', content, ); var left=10, right=416-2*left; @@ -188,7 +190,6 @@ ui.prototype.drawTextBox = function(content) { core.drawLine('ui', 32*px+32-xoffset, top, 32*px+16, top-yoffset+2); } - core.status.boxAnimateObjs = []; // 名称 core.canvas.ui.textAlign = "left"; @@ -211,7 +212,7 @@ ui.prototype.drawTextBox = function(content) { core.canvas.ui.drawImage(core.material.images.hero, heroIcon.stop * 32, heroIcon.loc * heroHeight, 32, heroHeight, left+15, top+40, 32, heroHeight); } else { - core.fillText('ui', name, content_left, top + 30, '#FFD700', 'bold 22px Verdana'); + core.fillText('ui', name, content_left, top + 30, null, 'bold 22px Verdana'); if (core.isset(icon)) { core.strokeRect('ui', left + 15 - 1, top + 40 - 1, 34, 34, null, 2); core.status.boxAnimateObjs = []; @@ -1389,9 +1390,10 @@ ui.prototype.drawAbout = function() { // 名称 core.canvas.ui.textAlign = "left"; core.fillText('ui', "HTML5 魔塔样板", text_start, top+35, "#FFD700", "bold 22px Verdana"); - core.fillText('ui', "作者: 艾之葵", text_start, top + 80, "#FFFFFF", "bold 17px Verdana"); - core.fillText('ui', 'HTML5魔塔交流群:539113091', text_start, top+112); - // TODO: 写自己的“关于”页面 + core.fillText('ui', "版本: "+core.firstData.version, text_start, top + 80, "#FFFFFF", "bold 17px Verdana"); + core.fillText('ui', "作者: 艾之葵", text_start, top + 112); + core.fillText('ui', 'HTML5魔塔交流群:539113091', text_start, top+112+32); + // TODO: 写自己的“关于”页面,每次增加32像素即可 } ////// 绘制帮助页面 ////// @@ -1406,6 +1408,7 @@ ui.prototype.drawHelp = function () { "[K] 打开/关闭快捷商店选择列表\n" + "[T] 打开/关闭工具栏\n" + "[ESC] 打开/关闭系统菜单\n" + + "[E] 显示光标\n" + "[H] 打开帮助页面\n"+ "[R] 回放\n"+ "[SPACE] 轻按(仅在轻按开关打开时有效)\n" + diff --git a/快捷键说明.txt b/快捷键说明.txt index 525b10d5..0e0fcf45 100644 --- a/快捷键说明.txt +++ b/快捷键说明.txt @@ -12,6 +12,7 @@ [K] 打开/关闭快捷商店选择列表 [T] 打开/关闭工具栏 [ESC] 打开/关闭系统菜单 +[E] 显示光标 [H] 打开帮助页面 [R] 回放 [SPACE] 轻按(仅在轻按开关打开时有效) diff --git a/更新说明.txt b/更新说明.txt index 542fc8b4..d6e43c3e 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -1,5 +1,6 @@ HTML5魔塔样板V1.3.3 +动画!动画!!动画!!! 瞬间移动。 支持天气系统,可以在剧本中设置默认天气。 新增自定义事件-图片显示。