From 396074d09fb6933842d7675bfe24de1dd1591cf3 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 28 Sep 2018 11:26:08 +0800 Subject: [PATCH 1/3] Skill Documents --- docs/personalization.md | 65 ++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/docs/personalization.md b/docs/personalization.md index f7d4422b..4814f924 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -639,47 +639,64 @@ core.statusBar.skill.innerHTML = core.getFlag('skillName', '无'); // 使用flag ### 技能的触发 -我们可以按键触发技能。有关绑定按键请参见[自定义快捷键](#自定义快捷键)。 +#### 使用道具作为技能 -下面是一个很简单的例子,当勇士按下W后,如果魔力不小于5点则允许开启技能"二倍斩",再次按W则关闭技能。 +由于手机端按键十分不方便,虚拟键盘不好用,因此强烈推荐**给每个技能设置一个道具图标,在道具栏点击使用!** + +下面是个很简单的例子,要制作一个技能"二倍斩"。 + +我们可以设置一个道具,其cls是`constants`(永久道具),ID比如是`skill1`。 + +该道具的使用判定`canUseItemEffect`是`true`(表示任意时候都可使用),使用效果`useItemEffect`是: ``` js -case 87: // W - if (core.status.heroStop) { // 当前停止状态;这个if需要加,不能在行走过程中触发不然容易出错。 - if (core.getFlag('skill', 0)==0) { // 判断当前是否已经开了技能 - if (core.getStatus('mana')>=5) { // 这里要写当前能否开技能的条件判断,比如魔力值至少要多少 - core.setFlag('skill', 1); // 开技能1 - core.setFlag('skillName', '二倍斩'); // 设置技能名 - } - else { - core.drawTip("魔力不足,无法开技能"); - } - } - else { // 关闭技能 - core.setFlag('skill', 0); // 关闭技能状态 - core.setFlag('skillName', '无'); - } - core.updateStatusBar(); // 立刻更新状态栏和地图显伤 - core.status.route.push("key:"+keyCode); // 录像的支持!这句话必须要加,不然录像回放会出错! +if (core.getFlag('skill', 0)==0) { // 判断当前是否已经开了技能 + if (core.getStatus('mana')>=5) { // 这里要写当前能否开技能的条件判断,比如魔力值至少要多少 + core.setFlag('skill', 1); // 开技能1 + core.setFlag('skillName', '二倍斩'); // 设置技能名 } - break; + else { + core.drawTip("魔力不足,无法开技能"); + } +} +else { // 关闭技能 + core.setFlag('skill', 0); // 关闭技能状态 + core.setFlag('skillName', '无'); +} ``` 简单的说,用flag:skill判断当前开启的技能,flag:skillName表示该技能名。(可在状态栏显示) -在勇士处于停止的条件下,按下W键时,判断当前是否开启了技能,如果开启则关闭,没开则再判断是否允许开启(魔力值够不够等)。 +该(技能)道具任何时候都可被使用;使用时,判断当前是否开启了技能,如果开启则关闭,没开则再判断是否允许开启(魔力值够不够等)。 -`core.status.route.push("key:"+keyCode);` 这句话是对录像的支持,一定要加(这样录像播放时也会模拟该按键)。 +#### 快捷键触发技能 + +在PC端,我们还可以按键触发技能。 + +在技能的道具定义完毕后,再将该道具绑定到一个快捷键上。有关绑定按键请参见[自定义快捷键](#自定义快捷键)。 + +下面是一个很简单的例子,当勇士按下W后,触发我们上面定义的二倍斩技能。 + +``` js +case 87: // W + if (core.status.heroStop) { // 当前停止状态;这个if需要加,不能在行走过程中触发不然容易出错。 + if (core.hasItem('skill1')) { // 判定该技能道具是否存在 + core.useItem('skill1'); // 使用道具(该技能) + } + } + break; +``` + +在勇士处于停止的条件下,按下W键时,判断技能的道具是否存在,如果存在再使用它。 !> 1,2,3这三个键被默认绑定到了破炸飞;如果想用的话也是一样,只不过是把已有的实现进行替换。 -!> 手机端可以通过长按任何位置调出虚拟键盘,再进行按键,和键盘按键是等价的效果! - ### 技能的效果 最后一点就是技能的效果;其实到了这里就和RM差不多了。 技能的效果要分的话有地图类技能,战斗效果类技能,后续影响类技能什么的,这里只介绍最简单的战斗效果类技能。 + 其他的几类技能根据需求可能更为麻烦,有兴趣可自行进行研究。 战斗效果内技能要改两个地方:战斗伤害计算,战后扣除魔力值。 From ac55a39b3fe77aa9b4c98f065604fab18d40a06b Mon Sep 17 00:00:00 2001 From: Zhang Chen Date: Fri, 28 Sep 2018 14:08:47 +0800 Subject: [PATCH 2/3] Update index.md --- docs/index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/index.md b/docs/index.md index 20370283..1bfc1309 100644 --- a/docs/index.md +++ b/docs/index.md @@ -12,9 +12,7 @@ > 这个魔塔样板,可以让你在完全不懂任何编程的情况下,做出自己的H5魔塔。不会代码?没关系!只要你想做,就能做出来! 继续查看文档的详细介绍,让你学会如何使用这一个样板来制作属于自己的HTML5魔塔。 - + ========================================================================================== [继续阅读下一章:现在就做出自己的第一部H5魔塔!](start) From f85c7341a6dfd1fcff5e69bea0ff8878e74ac7b3 Mon Sep 17 00:00:00 2001 From: Zhang Chen Date: Sat, 29 Sep 2018 21:47:17 +0800 Subject: [PATCH 3/3] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8fbb18f2..a1d98fb3 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏! * [x] 允许导入tilesets直接使用,无需PS和注册 * [x] tilesets的素材允许以矩形方式整体绘制 -* [x] Alt+0~9保存素材,Ctrl+0~9快速选中 +* [x] Alt+0\~9保存素材,Ctrl+0\~9快速选中 * [x] 增加了透明块的支持 * [x] 装备允许按照百分比增加属性 * [x] 多动画的同时播放