diff --git a/_docs/api.md b/_docs/api.md
index b2493a82..a128c81c 100644
--- a/_docs/api.md
+++ b/_docs/api.md
@@ -317,9 +317,6 @@ status: 只能为 stop, leftFoot 和 rightFoot,不填用stop。
offset: 相对主角逻辑位置的偏移量,不填视为无偏移。
frame: 绘制的第几帧
-fillPosWithPoint: fn(pos?: ?)
-显示离散的寻路点
-
gatherFollowers: fn()
立刻聚集所有的跟随者
diff --git a/_docs/script.md b/_docs/script.md
index 3c5495cb..e6333c5f 100644
--- a/_docs/script.md
+++ b/_docs/script.md
@@ -215,7 +215,7 @@ function () {
```
registerAction: fn(action: string, name: string, func: string|fn(params: ?), priority?: number)
此函数将注册一个用户交互行为。
-action: 要注册的交互类型,如 ondown, onclick, keyDown 等等。
+action: 要注册的交互类型,如 ondown, onup, keyDown 等等。
name: 你的自定义名称,可被注销使用;同名重复注册将后者覆盖前者。
func: 执行函数。
如果func返回true,则不会再继续执行其他的交互函数;否则会继续执行其他的交互函数。
@@ -228,8 +228,8 @@ priority: 优先级;优先级高的将会被执行。此项可不填,默认
```js
// 当flag:abc是true时,点击屏幕左上角可以使用道具破墙镐
-// 注入一个 onclick 事件,名称为 my_pickaxe
-core.registerAction('onclick', 'my_pickaxe', function (x, y, px, py) {
+// 注入一个 ondown 事件,名称为 my_pickaxe
+core.registerAction('ondown', 'my_pickaxe', function (x, y, px, py) {
// 如果当前正在执行某个事件,则忽略之。
if (core.status.lockControl) return false;
// 如果勇士正在行走中,则忽略之。
@@ -251,7 +251,7 @@ core.registerAction('onclick', 'my_pickaxe', function (x, y, px, py) {
}, 100);
// 当你不再需要上述监听时,可以通过下面这一句取消注入。
-// core.unregisterActon('onclick', 'my_pickaxe');
+// core.unregisterActon('ondown', 'my_pickaxe');
```
下面是另一个例子:
@@ -339,12 +339,8 @@ core.registerAction('longClick', 'my_shop', '_my_shop_longClick', 100);
- 如果是触摸屏,则只有手指按下滑动时才会触发`onmove`(并不存在什么悬浮的说法)。
- `onup`: 当屏幕被鼠标或手指放开时
- 对应的函数参数:`function (x, y, px, py)`,为此时放开时的格子坐标和像素坐标。
-- `onclick`: 当屏幕被鼠标或手机点击时
- - 对应的函数参数:`function (x, y, px, py, stepPostfix)`,为此时点击的格子坐标、像素坐标,和拖动路径
- - 此函数会在两种情况下被调用:
- - 在锁定状态下(即角色不可以自由移动),会在`ondown`时直接触发`onclick`,此时`stepPostfix`为空数组。
- - 在自由状态下(即角色可以自由移动),会在`onup`时触发`onclick`;此时`stepPostfix`为拖动寻路的路径数组。
- - 推荐自定义的点击监听都使用`ondown`处理。
+- `onclick` 【已废弃】
+ - 从V2.8.2起,此交互已被废弃,注册一个`onclick`会被直接转发至`ondown`。
- `onmousewheel`: 当鼠标滚轮滚动时
- 对应的函数参数:`function (direct)`,为此时滚轮方向。向下滚动是-1,向上滚动是1。
- 目前在楼传、怪物手册、存读档、浏览地图等多个地方绑定了鼠标滚轮事件。
diff --git a/_server/CodeMirror/defs.js b/_server/CodeMirror/defs.js
index 9ecbfc5a..96279c20 100644
--- a/_server/CodeMirror/defs.js
+++ b/_server/CodeMirror/defs.js
@@ -2343,10 +2343,6 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!doc": "连续行走
例如:core.setAutoHeroMove([{direction: \"up\", step: 1}, {direction: \"left\", step: 3}]); // 上左左左
steps: 压缩的步伐数组,每项表示朝某方向走多少步",
"!type": "fn(steps: [?])"
},
- "fillPosWithPoint": {
- "!doc": "显示离散的寻路点",
- "!type": "fn(pos?: ?)"
- },
"unregisterResize": {
"!doc": "注销一个resize函数",
"!type": "fn(name: string)"
diff --git a/libs/actions.js b/libs/actions.js
index f6cb78ea..08d127a5 100644
--- a/libs/actions.js
+++ b/libs/actions.js
@@ -47,17 +47,13 @@ actions.prototype._init = function () {
// --- onup注册
this.registerAction('onup', '_sys_checkReplay', this._sys_checkReplay, 100);
this.registerAction('onup', '_sys_onup', this._sys_onup, 0);
- // --- onclick注册
- this.registerAction('onclick', '_sys_checkReplay', this._sys_checkReplay, 100);
- this.registerAction('onclick', '_sys_onclick_lockControl', this._sys_onclick_lockControl, 50);
- this.registerAction('onclick', '_sys_onclick', this._sys_onclick, 0);
+ // --- onclick已废弃,将视为ondown
// --- onmousewheel注册
this.registerAction('onmousewheel', '_sys_onmousewheel', this._sys_onmousewheel, 0);
// --- keyDownCtrl注册
this.registerAction('keyDownCtrl', '_sys_keyDownCtrl', this._sys_keyDownCtrl, 0);
// --- longClick注册
this.registerAction('longClick', '_sys_longClick_lockControl', this._sys_longClick_lockControl, 50);
- this.registerAction('longClick', '_sys_longClick', this._sys_longClick, 0);
// --- onStatusBarClick注册
this.registerAction('onStatusBarClick', '_sys_onStatusBarClick', this._sys_onStatusBarClick, 0);
@@ -66,7 +62,7 @@ actions.prototype._init = function () {
////// 注册一个用户交互行为 //////
/*
* 此函数将注册一个用户交互行为。
- * action:要注册的交互类型,如 ondown, onclick, keyDown 等等。
+ * action:要注册的交互类型,如 ondown, onup, keyDown 等等。
* name:你的自定义名称,可被注销使用;同名重复注册将后者覆盖前者。
* func:执行函数。
* priority:优先级;优先级高的将会被执行。此项可不填,默认为0。
@@ -75,6 +71,8 @@ actions.prototype._init = function () {
actions.prototype.registerAction = function (action, name, func, priority) {
if (!name || !func)
return;
+ // 将onclick视为ondown处理
+ if (action == 'onclick') action = 'ondown';
priority = priority || 0;
if (!this.actions[action]) {
this.actions[action] = [];
@@ -90,6 +88,8 @@ actions.prototype.registerAction = function (action, name, func, priority) {
////// 注销一个用户交互行为 //////
actions.prototype.unregisterAction = function (action, name) {
+ // 将onclick视为ondown处理
+ if (action == 'onclick') action = 'ondown';
if (!this.actions[action]) return;
this.actions[action] = this.actions[action].filter(function (x) {
return x.name != name;
@@ -462,176 +462,6 @@ actions.prototype.ondown = function (loc) {
actions.prototype._sys_ondown_lockControl = function (x, y, px, py) {
if (core.status.played && !core.status.lockControl) return false;
- core.actions.onclick(x, y, px, py, []);
-
- // --- 长按判定
- if (core.timeout.onDownTimeout == null) {
- core.timeout.onDownTimeout = setTimeout(function () {
- if (core.interval.onDownInterval == null) {
- core.interval.onDownInterval = setInterval(function () {
- if (!core.actions.longClick(x, y, px, py)) {
- clearInterval(core.interval.onDownInterval);
- core.interval.onDownInterval = null;
- }
- }, 40)
- }
- }, 500);
- }
- return true;
-}
-
-actions.prototype._sys_ondown = function (x, y, px, py) {
- core.status.downTime = new Date();
- core.deleteCanvas('route');
- var pos = {'x': x, 'y': y}
- core.status.stepPostfix = [];
- core.status.stepPostfix.push(pos);
- core.fillPosWithPoint(pos);
-}
-
-////// 当在触摸屏上滑动时 //////
-actions.prototype.onmove = function (loc) {
- var x = parseInt(loc.x / loc.size), y = parseInt(loc.y / loc.size);
- var px = parseInt(loc.x / core.domStyle.scale), py = parseInt(loc.y / core.domStyle.scale);
- this.doRegisteredAction('onmove', x, y, px, py);
-}
-
-actions.prototype._sys_onmove_choices = function (x, y) {
- if (!core.status.lockControl) return false;
-
- switch (core.status.event.id) {
- case 'action':
- if (core.status.event.data.type == 'choices') {
- this._onMoveChoices(x, y);
- return true;
- }
- if (core.status.event.data.type == 'confirm') {
- this._onMoveConfirmBox(x, y);
- return true;
- }
- break;
- case 'selectShop':
- case 'switchs':
- case 'switchs-sounds':
- case 'switchs-display':
- case 'switchs-action':
- case 'notes':
- case 'settings':
- case 'syncSave':
- case 'syncSelect':
- case 'localSaveSelect':
- case 'storageRemove':
- case 'replay':
- case 'gameInfo':
- this._onMoveChoices(x, y);
- return true;
- case 'confirmBox':
- this._onMoveConfirmBox(x, y);
- return true;
- default:
- break;
- }
- return false;
-}
-
-actions.prototype._sys_onmove = function (x, y) {
- if ((core.status.stepPostfix || []).length > 0) {
- var pos = {'x': x, 'y': y};
- var pos0 = core.status.stepPostfix[core.status.stepPostfix.length - 1];
- var directionDistance = [pos.y - pos0.y, pos0.x - pos.x, pos0.y - pos.y, pos.x - pos0.x];
- var max = 0, index = 4;
- for (var ii = 0; ii < 4; ii++) {
- if (directionDistance[ii] > max) {
- index = ii;
- max = directionDistance[ii];
- }
- }
- pos = [{'x': 0, 'y': 1}, {'x': -1, 'y': 0}, {'x': 0, 'y': -1}, {'x': 1, 'y': 0}, false][index]
- if (pos) {
- pos.x += pos0.x;
- pos.y += pos0.y;
- core.status.stepPostfix.push(pos);
- core.fillPosWithPoint(pos);
- }
- }
- return true;
-}
-
-////// 当点击(触摸)事件放开时 //////
-actions.prototype.onup = function (loc) {
- var x = parseInt(loc.x / loc.size), y = parseInt(loc.y / loc.size);
- var px = parseInt(loc.x / core.domStyle.scale), py = parseInt(loc.y / core.domStyle.scale);
- this.doRegisteredAction('onup', x, y, px, py);
-}
-
-actions.prototype._sys_onup = function () {
- clearTimeout(core.timeout.onDownTimeout);
- core.timeout.onDownTimeout = null;
- clearInterval(core.interval.onDownInterval);
- core.interval.onDownInterval = null;
-
- if ((core.status.stepPostfix || []).length == 0) return false;
-
- var stepPostfix = [];
- var direction = {'0': {'1': 'down', '-1': 'up'}, '-1': {'0': 'left'}, '1': {'0': 'right'}};
- for (var ii = 1; ii < core.status.stepPostfix.length; ii++) {
- var pos0 = core.status.stepPostfix[ii - 1];
- var pos = core.status.stepPostfix[ii];
- stepPostfix.push({
- 'direction': direction[pos.x - pos0.x][pos.y - pos0.y],
- 'x': pos.x + parseInt(core.bigmap.offsetX / 32),
- 'y': pos.y + parseInt(core.bigmap.offsetY / 32)
- });
- }
- var posx = core.status.stepPostfix[0].x;
- var posy = core.status.stepPostfix[0].y;
- core.status.stepPostfix = [];
- if (!core.status.lockControl) {
- core.clearMap('ui');
- }
-
- // 长按
- if (!core.status.lockControl && stepPostfix.length == 0 && core.status.downTime != null && new Date() - core.status.downTime >= 1000) {
- core.actions.longClick(posx, posy, 32 * posx + 16, 32 * posy + 16);
- }
- else {
- //posx,posy是寻路的目标点,stepPostfix是后续的移动
- core.actions.onclick(posx, posy, 32 * posx + 16, 32 * posy + 16, stepPostfix);
- }
- core.status.downTime = null;
- return true;
-}
-
-////// 获得点击事件相对左上角的坐标 //////
-actions.prototype._getClickLoc = function (x, y) {
-
- var statusBar = {'x': 0, 'y': 0};
- var size = 32;
- size = size * core.domStyle.scale;
-
- if (core.domStyle.isVertical) {
- statusBar.x = 3;
- statusBar.y = core.dom.statusBar.offsetHeight + 3;
- }
- else {
- statusBar.x = core.dom.statusBar.offsetWidth + 3;
- statusBar.y = 3;
- }
-
- var left = core.dom.gameGroup.offsetLeft + statusBar.x;
- var top = core.dom.gameGroup.offsetTop + statusBar.y;
- var loc = {'x': Math.max(x - left), 'y': Math.max(y - top, 0), 'size': size};
- return loc;
-}
-
-////// 具体点击屏幕上(x,y)点时,执行的操作 //////
-actions.prototype.onclick = function (x, y, px, py, stepPostfix) {
- // console.log("Click: (" + x + "," + y + ")");
- return this.doRegisteredAction('onclick', x, y, px, py, stepPostfix || []);
-}
-
-actions.prototype._sys_onclick_lockControl = function (x, y, px, py) {
- if (!core.status.lockControl) return false;
switch (core.status.event.id) {
case 'centerFly':
this._clickCenterFly(x, y, px, py);
@@ -720,15 +550,210 @@ actions.prototype._sys_onclick_lockControl = function (x, y, px, py) {
core.ui.closePanel();
break;
}
+
+ // --- 长按判定
+ if (core.timeout.onDownTimeout == null) {
+ core.timeout.onDownTimeout = setTimeout(function () {
+ if (core.interval.onDownInterval == null) {
+ core.interval.onDownInterval = setInterval(function () {
+ if (!core.actions.longClick(x, y, px, py)) {
+ clearInterval(core.interval.onDownInterval);
+ core.interval.onDownInterval = null;
+ }
+ }, 40)
+ }
+ }, 500);
+ }
return true;
}
-actions.prototype._sys_onclick = function (x, y, px, py, stepPostfix) {
- // 寻路
- core.setAutomaticRoute(x + parseInt(core.bigmap.offsetX / 32), y + parseInt(core.bigmap.offsetY / 32), stepPostfix);
+actions.prototype._sys_ondown = function (x, y, px, py) {
+ if (core.status.lockControl) return false;
+ core.status.downTime = new Date();
+ core.deleteCanvas('route');
+ var pos = {'x': parseInt((px + core.bigmap.offsetX) / 32), 'y': parseInt((py + core.bigmap.offsetY) / 32)};
+ core.status.stepPostfix = [];
+ core.status.stepPostfix.push(pos);
+ core.fillRect('ui', pos.x*32+12-core.bigmap.offsetX,pos.y*32+12-core.bigmap.offsetY,8,8, '#bfbfbf');
+
+ clearTimeout(core.timeout.onDownTimeout);
+ core.timeout.onDownTimeout = null;
+ core.status.preview.prepareDragging = false;
+ if (!core.hasFlag('__lockViewport__') && (core.status.thisMap.width > core.__SIZE__ || core.status.thisMap.height > core.__SIZE__)) {
+ core.status.preview.prepareDragging = true;
+ core.status.preview.px = px;
+ core.status.preview.py = py;
+ core.timeout.onDownTimeout = setTimeout(function () {
+ core.clearMap('ui');
+ core.status.preview.prepareDragging = false;
+ core.status.preview.enabled = true;
+ core.status.preview.dragging = true;
+ core.drawTip('已进入预览模式,可直接拖动大地图');
+ console.log('已进入预览模式,可直接拖动大地图');
+ core.status.stepPostfix = [];
+ }, 1200);
+ }
+}
+
+////// 当在触摸屏上滑动时 //////
+actions.prototype.onmove = function (loc) {
+ var x = parseInt(loc.x / loc.size), y = parseInt(loc.y / loc.size);
+ var px = parseInt(loc.x / core.domStyle.scale), py = parseInt(loc.y / core.domStyle.scale);
+ this.doRegisteredAction('onmove', x, y, px, py);
+}
+
+actions.prototype._sys_onmove_choices = function (x, y) {
+ if (!core.status.lockControl) return false;
+
+ switch (core.status.event.id) {
+ case 'action':
+ if (core.status.event.data.type == 'choices') {
+ this._onMoveChoices(x, y);
+ return true;
+ }
+ if (core.status.event.data.type == 'confirm') {
+ this._onMoveConfirmBox(x, y);
+ return true;
+ }
+ break;
+ case 'selectShop':
+ case 'switchs':
+ case 'switchs-sounds':
+ case 'switchs-display':
+ case 'switchs-action':
+ case 'notes':
+ case 'settings':
+ case 'syncSave':
+ case 'syncSelect':
+ case 'localSaveSelect':
+ case 'storageRemove':
+ case 'replay':
+ case 'gameInfo':
+ this._onMoveChoices(x, y);
+ return true;
+ case 'confirmBox':
+ this._onMoveConfirmBox(x, y);
+ return true;
+ default:
+ break;
+ }
+ return false;
+}
+
+actions.prototype._sys_onmove = function (x, y, px, py) {
+ if (core.status.lockControl) return false;
+
+ if (core.status.preview.dragging) {
+ core.setViewport(core.bigmap.offsetX - px + core.status.preview.px, core.bigmap.offsetY - py + core.status.preview.py);
+ core.status.preview.px = px;
+ core.status.preview.py = py;
+ return true;
+ }
+ if (core.status.preview.prepareDragging) {
+ if (Math.abs(px - core.status.preview.px) <= 20 && Math.abs(py - core.status.preview.py) <= 20)
+ return true;
+ else core.status.preview.prepareDragging = false;
+ }
+
+ clearTimeout(core.timeout.onDownTimeout);
+ core.timeout.onDownTimeout = null;
+
+ if ((core.status.stepPostfix || []).length > 0) {
+ var pos = {'x': parseInt((px + core.bigmap.offsetX) / 32), 'y': parseInt((py + core.bigmap.offsetY) / 32)};
+ var pos0 = core.status.stepPostfix[core.status.stepPostfix.length - 1];
+ var directionDistance = [pos.y - pos0.y, pos0.x - pos.x, pos0.y - pos.y, pos.x - pos0.x];
+ var max = 0, index = 4;
+ for (var ii = 0; ii < 4; ii++) {
+ if (directionDistance[ii] > max) {
+ index = ii;
+ max = directionDistance[ii];
+ }
+ }
+ pos = [{'x': 0, 'y': 1}, {'x': -1, 'y': 0}, {'x': 0, 'y': -1}, {'x': 1, 'y': 0}, false][index]
+ if (pos) {
+ pos.x += pos0.x;
+ pos.y += pos0.y;
+ core.status.stepPostfix.push(pos);
+ core.fillRect('ui', pos.x*32+12-core.bigmap.offsetX,pos.y*32+12-core.bigmap.offsetY,8,8, '#bfbfbf');
+ }
+ }
return true;
}
+////// 当点击(触摸)事件放开时 //////
+actions.prototype.onup = function (loc) {
+ var x = parseInt(loc.x / loc.size), y = parseInt(loc.y / loc.size);
+ var px = parseInt(loc.x / core.domStyle.scale), py = parseInt(loc.y / core.domStyle.scale);
+ this.doRegisteredAction('onup', x, y, px, py);
+}
+
+actions.prototype._sys_onup = function (x, y, px, py) {
+ clearTimeout(core.timeout.onDownTimeout);
+ core.timeout.onDownTimeout = null;
+ clearInterval(core.interval.onDownInterval);
+ core.interval.onDownInterval = null;
+
+ core.status.preview.prepareDragging = false;
+ if (core.status.preview.dragging) {
+ core.status.preview.dragging = false;
+ return true;
+ }
+
+ if ((core.status.stepPostfix || []).length == 0) return false;
+
+ var stepPostfix = [];
+ var direction = {'0': {'1': 'down', '-1': 'up'}, '-1': {'0': 'left'}, '1': {'0': 'right'}};
+ for (var ii = 1; ii < core.status.stepPostfix.length; ii++) {
+ var pos0 = core.status.stepPostfix[ii - 1];
+ var pos = core.status.stepPostfix[ii];
+ stepPostfix.push({
+ 'direction': direction[pos.x - pos0.x][pos.y - pos0.y],
+ 'x': pos.x,
+ 'y': pos.y
+ });
+ }
+ var posx = core.status.stepPostfix[0].x;
+ var posy = core.status.stepPostfix[0].y;
+ core.status.stepPostfix = [];
+ if (!core.status.lockControl) {
+ core.clearMap('ui');
+ }
+
+ // 长按
+ if (!core.status.lockControl && stepPostfix.length == 0 && core.status.downTime != null && new Date() - core.status.downTime >= 1000) {
+ core.actions.longClick(x, y, px, py);
+ }
+ else {
+ //posx,posy是寻路的目标点,stepPostfix是后续的移动
+ core.setAutomaticRoute(posx, posy, stepPostfix);
+ }
+ core.status.downTime = null;
+ return true;
+}
+
+////// 获得点击事件相对左上角的坐标 //////
+actions.prototype._getClickLoc = function (x, y) {
+
+ var statusBar = {'x': 0, 'y': 0};
+ var size = 32;
+ size = size * core.domStyle.scale;
+
+ if (core.domStyle.isVertical) {
+ statusBar.x = 3;
+ statusBar.y = core.dom.statusBar.offsetHeight + 3;
+ }
+ else {
+ statusBar.x = core.dom.statusBar.offsetWidth + 3;
+ statusBar.y = 3;
+ }
+
+ var left = core.dom.gameGroup.offsetLeft + statusBar.x;
+ var top = core.dom.gameGroup.offsetTop + statusBar.y;
+ var loc = {'x': Math.max(x - left), 'y': Math.max(y - top, 0), 'size': size};
+ return loc;
+}
+
+
////// 滑动鼠标滚轮时的操作 //////
actions.prototype.onmousewheel = function (direct) {
this.doRegisteredAction('onmousewheel', direct);
@@ -819,9 +844,9 @@ actions.prototype._sys_keyDownCtrl = function () {
}
////// 长按 //////
-actions.prototype.longClick = function (x, y, px, py, fromEvent) {
+actions.prototype.longClick = function (x, y, px, py) {
if (!core.isPlaying()) return false;
- return this.doRegisteredAction('longClick', x, y, px, py, fromEvent);
+ return this.doRegisteredAction('longClick', x, y, px, py);
}
actions.prototype._sys_longClick_lockControl = function (x, y, px, py) {
@@ -861,15 +886,6 @@ actions.prototype._sys_longClick_lockControl = function (x, y, px, py) {
return false;
}
-actions.prototype._sys_longClick = function (x, y, px, py, fromEvent) {
- if (core.status.lockControl) return false;
- // 虚拟键盘
- core.waitHeroToStop(function () {
- core.ui._drawKeyBoard();
- });
- return true;
-}
-
actions.prototype.onStatusBarClick = function (e) {
if (!core.isPlaying()) return false;
var left = core.dom.gameGroup.offsetLeft + 3;
@@ -3098,7 +3114,9 @@ actions.prototype._clickKeyBoard = function (x, y) {
actions.prototype._clickCursor = function (x, y, px, py) {
if (x == core.status.automaticRoute.cursorX && y == core.status.automaticRoute.cursorY) {
core.ui.closePanel();
- core.onclick(x, y, px, py, []);
+ // 视为按下再放起
+ this.doRegisteredAction('ondown', x, y, px, py);
+ this.doRegisteredAction('onup', x, y, px, py);
return;
}
core.status.automaticRoute.cursorX = x;
@@ -3146,7 +3164,9 @@ actions.prototype._keyUpCursor = function (keycode) {
core.ui.closePanel();
var x = core.status.automaticRoute.cursorX;
var y = core.status.automaticRoute.cursorY;
- core.onclick(x, y, 32 * x + 16, 32 * y + 16, []);
+ // 视为按下再放起
+ this.doRegisteredAction('ondown', x, y, 32 * x + 16, 32 * y + 16);
+ this.doRegisteredAction('onup', x, y, 32 * x + 16, 32 * y + 16);
return;
}
}
diff --git a/libs/control.js b/libs/control.js
index ce08fd41..120540ad 100644
--- a/libs/control.js
+++ b/libs/control.js
@@ -159,7 +159,7 @@ control.prototype._animationFrame_globalAnimate = function (timestamp) {
});
// Global hero animate
- if ((core.status.hero || {}).animate && core.status.heroMoving == 0 && main.mode == 'play') {
+ if ((core.status.hero || {}).animate && core.status.heroMoving == 0 && main.mode == 'play' && !core.status.preview.enabled) {
core.drawHero('stop', null, core.status.globalAnimateStatus);
}
}
@@ -498,11 +498,6 @@ control.prototype.clearContinueAutomaticRoute = function (callback) {
if (callback) callback();
}
-////// 显示离散的寻路点 //////
-control.prototype.fillPosWithPoint = function (pos) {
- core.fillRect('ui', pos.x*32+12,pos.y*32+12,8,8, '#bfbfbf');
-}
-
////// 设置自动寻路路线 //////
control.prototype.setAutomaticRoute = function (destX, destY, stepPostfix) {
if (!core.status.played || core.status.lockControl) return;
@@ -834,6 +829,7 @@ control.prototype.drawHero = function (status, offset, frame) {
core.setGameCanvasTranslate('hero', 0, 0);
delete core.canvas.hero._px;
delete core.canvas.hero._py;
+ core.status.preview.enabled = false;
if (!core.hasFlag('__lockViewport__')) {
this._drawHero_updateViewport(x, y, offset);
}
diff --git a/libs/core.js b/libs/core.js
index 8cb19316..d0d0a039 100644
--- a/libs/core.js
+++ b/libs/core.js
@@ -178,6 +178,13 @@ function core() {
// 按下键的时间:为了判定双击
'downTime': null,
'ctrlDown': false,
+ 'preview': {
+ 'enabled': false,
+ 'prepareDragging': false,
+ 'dragging': false,
+ 'px': 0,
+ 'py': 0,
+ },
// 路线&回放
'route': [],
diff --git a/project/materials/keyboard.png b/project/materials/keyboard.png
index 55d5b2dc..161adfb8 100644
Binary files a/project/materials/keyboard.png and b/project/materials/keyboard.png differ
diff --git a/runtime.d.ts b/runtime.d.ts
index 57c9ee7b..c79a589e 100644
--- a/runtime.d.ts
+++ b/runtime.d.ts
@@ -623,9 +623,6 @@ declare class control {
/** 清空剩下的自动寻路列表 */
clearContinueAutomaticRoute(callback?: () => any): void
- /** 显示离散的寻路点 */
- fillPosWithPoint(pos?: any): void
-
/** 设置行走的效果动画 */
setHeroMoveInterval(callback?: () => any): void