From f0bdd3e026b1bdd07dc6af371d1807d3361c098c Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Tue, 22 Oct 2019 11:56:29 +0800 Subject: [PATCH] setStartPoint --- _server/editor.js | 2 +- _server/editor_listen.js | 2 +- _server/editor_mappanel.js | 60 +++++++++++++++++++++++++++------- editor-mobile.html | 2 +- editor.html | 2 +- extensions/dynamicMapEditor.js | 7 ++-- 6 files changed, 57 insertions(+), 18 deletions(-) diff --git a/_server/editor.js b/_server/editor.js index 872142d3..09111eb7 100644 --- a/_server/editor.js +++ b/_server/editor.js @@ -15,7 +15,7 @@ function editor() { dataSelection : document.getElementById('dataSelection'), iconLib:document.getElementById('iconLib'), midMenu:document.getElementById('midMenu'), - addFloorEvent :document.getElementById('addFloorEvent'), + extraEvent: document.getElementById('extraEvent'), chooseThis : document.getElementById('chooseThis'), chooseInRight : document.getElementById('chooseInRight'), copyLoc : document.getElementById('copyLoc'), diff --git a/_server/editor_listen.js b/_server/editor_listen.js index db006864..f1fd4ea8 100644 --- a/_server/editor_listen.js +++ b/_server/editor_listen.js @@ -25,7 +25,7 @@ editor_listen_wrapper = function (editor) { editor.dom.iconLib.onmousedown = editor.uifunctions.material_ondown - editor.dom.addFloorEvent.onmousedown = editor.addFloorEvent_click + editor.dom.extraEvent.onmousedown = editor.uifunctions.extraEvent_click editor.dom.chooseThis.onmousedown = editor.uifunctions.chooseThis_click editor.dom.chooseInRight.onmousedown = editor.uifunctions.chooseInRight_click editor.dom.copyLoc.onmousedown = editor.uifunctions.copyLoc_click diff --git a/_server/editor_mappanel.js b/_server/editor_mappanel.js index 036aee59..3dc60db0 100644 --- a/_server/editor_mappanel.js +++ b/_server/editor_mappanel.js @@ -271,19 +271,27 @@ editor_mappanel_wrapper = function (editor) { // 检测是否是上下楼 var thisevent = editor.map[editor.pos.y][editor.pos.x]; - if (thisevent.id == 'upFloor') { - editor.dom.addFloorEvent.style.display = 'block'; - editor.dom.addFloorEvent.children[0].innerHTML = '绑定上楼事件'; + if (thisevent == 0) { + editor.dom.extraEvent.style.display = 'block'; + editor.dom.extraEvent.children[0].innerHTML = '绑定出生点为此点'; + } + else if (thisevent.id == 'upFloor') { + editor.dom.extraEvent.style.display = 'block'; + editor.dom.extraEvent.children[0].innerHTML = '绑定上楼事件'; } else if (thisevent.id == 'downFloor') { - editor.dom.addFloorEvent.style.display = 'block'; - editor.dom.addFloorEvent.children[0].innerHTML = '绑定下楼事件'; + editor.dom.extraEvent.style.display = 'block'; + editor.dom.extraEvent.children[0].innerHTML = '绑定下楼事件'; } else if (['leftPortal', 'rightPortal', 'downPortal', 'upPortal'].indexOf(thisevent.id) >= 0) { - editor.dom.addFloorEvent.style.display = 'block'; - editor.dom.addFloorEvent.children[0].innerHTML = '绑定楼传事件'; + editor.dom.extraEvent.style.display = 'block'; + editor.dom.extraEvent.children[0].innerHTML = '绑定楼传事件'; } - else editor.dom.addFloorEvent.style.display = 'none'; + else if (thisevent.id == 'specialDoor') { + editor.dom.extraEvent.style.display = 'block'; + editor.dom.extraEvent.children[0].innerHTML = '绑定机关门事件'; + } + else editor.dom.extraEvent.style.display = 'none'; editor.dom.chooseThis.children[0].innerHTML = '选中此点' + '(' + editor.pos.x + ',' + editor.pos.y + ')' editor.dom.copyLoc.children[0].innerHTML = '复制事件' + locStr + '到此处'; @@ -305,13 +313,38 @@ editor_mappanel_wrapper = function (editor) { } /** - * editor.dom.addFloorEvent.onmousedown - * 菜单 添加上下楼事件 + * editor.dom.extraEvent.onmousedown + * 菜单 附加点操作 */ - editor.addFloorEvent_click = function (e) { + editor.uifunctions.extraEvent_click = function (e) { editor.uifunctions.hideMidMenu(); e.stopPropagation(); + var thisevent = editor.map[editor.pos.y][editor.pos.x]; + return this._extraEvent_bindStartPoint(thisevent) || this._extraEvent_bindStair(thisevent) + || this._extraEvent_bindSpecialDoor(thisevent); + } + + editor.uifunctions._extraEvent_bindStartPoint = function (thisevent) { + if (thisevent != 0) return false; + editor.file.editTower([ + ["change", "['firstData']['floorId']", editor.currentFloorId], + ["change", "['firstData']['hero']['loc']['x']", editor.pos.x], + ["change", "['firstData']['hero']['loc']['y']", editor.pos.y] + ], function (objs_) {//console.log(objs_); + if (objs_.slice(-1)[0] != null) { + printe(objs_.slice(-1)[0]); + throw(objs_.slice(-1)[0]) + } + editor.drawPosSelection(); + editor_mode.showMode('tower'); + printf('绑定初始点成功'); + }); + } + + editor.uifunctions._extraEvent_bindStair = function (thisevent) { + if (['upFloor', 'downFloor', 'leftPortal', 'rightPortal', 'upPortal', 'downPortal'].indexOf(thisevent.id) < 0) + return false; var loc = editor.pos.x + "," + editor.pos.y; if (thisevent.id == 'upFloor') { editor.currentFloorData.changeFloor[loc] = { "floorId": ":next", "stair": "downFloor" }; @@ -334,6 +367,11 @@ editor_mappanel_wrapper = function (editor) { editor_mode.showMode('loc'); printf('添加楼梯事件成功'); }); + return true; + } + + editor.uifunctions._extraEvent_bindSpecialDoor = function (thisevent) { + } /** diff --git a/editor-mobile.html b/editor-mobile.html index 8c861bef..cce91304 100644 --- a/editor-mobile.html +++ b/editor-mobile.html @@ -337,7 +337,7 @@