From f42ca872985399a87d454d0cf6f7b164d1a71f42 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 30 Nov 2018 21:28:54 +0800 Subject: [PATCH] Async move & jump --- docs/event.md | 18 +++++++++++++----- libs/ui.js | 4 ++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/docs/event.md b/docs/event.md index 82c1b2ee..59c2cb22 100644 --- a/docs/event.md +++ b/docs/event.md @@ -990,7 +990,7 @@ level为天气的强度等级,在1-10之间。1级为最弱,10级为最强 {"type": "move", "time": 750, "loc": [x,y], "steps": [// 动画效果,time为移动速度(比如这里每750ms一步),loc为位置可选,steps为移动数组 {"direction": "right", "value": 2},// 这里steps 的效果为向右移动2步,在向下移动一步并消失 "down" // 如果该方向上只移动一步则可以这样简写,效果等价于上面value为1 - ], "keep": true }, // keep可选,如果为true则不消失,否则渐变消失 + ], "keep": true, "async":true }, // keep可选,如果为true则不消失,否则渐变消失;async可选,如果为true则异步执行。 ] ``` @@ -1026,7 +1026,9 @@ keep为一个可选项,代表该事件移动完毕后是否消失。如果该 } ``` -即,在移动的到达点指定一个初始禁用的相同NPC,然后move事件中指定immediateHide使立刻消失,并show该到达点坐标使其立刻显示(看起来就像没有消失),然后就可以触发目标点的事件了。 +即,在移动的到达点指定一个事件,然后move事件中指定"keep":true,然后就可以触发目标点的事件了。 + +async可选,如果为true则会异步执行(即不等待当前事件执行完毕,立刻执行下一个事件)。 ### moveHero:移动勇士 @@ -1036,7 +1038,7 @@ keep为一个可选项,代表该事件移动完毕后是否消失。如果该 ``` js "x,y": [ // 实际执行的事件列表 - {"type": "moveHero", "time": 750, "steps": [// 动画效果,time为移动速度(比如这里每750ms一步),steps为移动数组 + {"type": "moveHero", "time": 750, "async": true, "steps": [// 动画效果,time为移动速度(比如这里每750ms一步),steps为移动数组 {"direction": "right", "value": 2},// 这里steps 的效果为向右移动2步,在向下移动一步并消失 "down" // 如果该方向上只移动一步则可以这样简写,效果等价于上面value为1 ]}, @@ -1047,6 +1049,8 @@ keep为一个可选项,代表该事件移动完毕后是否消失。如果该 不过值得注意的是,用这种方式移动勇士的过程中将无视一切地形,无视一切事件,中毒状态也不会扣血。 +async可选,如果为true则会异步执行(即不等待当前事件执行完毕,立刻执行下一个事件)。 + ### jump:让某个NPC/怪物跳跃 如果我们需要移动某个NPC或怪物,可以使用`{"type": "jump"}`。 @@ -1055,7 +1059,7 @@ keep为一个可选项,代表该事件移动完毕后是否消失。如果该 ``` js "x,y": [ // 实际执行的事件列表 - {"type": "jump", "from": [3,6], "to": [2,1], "time": 750, "keep": true}, + {"type": "jump", "from": [3,6], "to": [2,1], "time": 750, "keep": true, "async": true}, ] ``` @@ -1069,6 +1073,8 @@ keep为一个可选项,同上代表该跳跃完毕后是否不消失。如果 如果指定了`"keep": true`,则相当于会在目标地点触发一个`setBlock`事件;如需能继续对话交互请在目标地点再写事件。 +async可选,如果为true则会异步执行(即不等待当前事件执行完毕,立刻执行下一个事件)。 + ### jumpHero:跳跃勇士 如果我们需要跳跃勇士,可以使用`{"type": "jumpHero"}`。 @@ -1077,7 +1083,7 @@ keep为一个可选项,同上代表该跳跃完毕后是否不消失。如果 ``` js "x,y": [ // 实际执行的事件列表 - {"type": "jump", "loc": [3,6], "time": 750}, + {"type": "jump", "loc": [3,6], "time": 750, "async": true}, ] ``` @@ -1085,6 +1091,8 @@ loc为目标坐标,可以忽略表示原地跳跃(请注意是原地跳跃 time选项为该跳跃所需要用到的时间。 +async可选,如果为true则会异步执行(即不等待当前事件执行完毕,立刻执行下一个事件)。 + ### playBgm:播放背景音乐 使用playBgm可以播放一个背景音乐。 diff --git a/libs/ui.js b/libs/ui.js index 6333ba13..f59f2e2f 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -469,8 +469,8 @@ ui.prototype.drawTextBox = function(content, showAll) { var left=7, right=416-left, width = right-left; var content_left = left + 25; - if (id=='hero' || core.isset(icon)) content_left=left+63; - else if (core.isset(image)) content_left = left + 90; + if (id=='hero' || core.isset(icon)) content_left = left + 62; // 行走图:15+32+15 + else if (core.isset(image)) content_left = left + 90; // 大头像:10+70+10 var validWidth = right-content_left - 12; var font = textfont + 'px Verdana';