更新UI绘制相关

This commit is contained in:
ckcz123 2020-07-15 17:06:02 +08:00
parent 7743fc8de0
commit 900d186922
9 changed files with 208 additions and 401 deletions

View File

@ -1732,6 +1732,10 @@ clearTip: fn()
clearUI: fn()
清空UI层内容
clearUIEventSelector: fn(codes?: number|[number])
清除若干个自绘的选择光标
codes: 清除的光标编号;可以是单个编号或编号数组;不填则清除所有光标
closePanel: fn()
结束一切事件和绘制关闭UI窗口返回游戏进程
@ -1749,9 +1753,6 @@ deleteAllCanvas: fn()
deleteCanvas: fn(name: string)
删除一个自定义画布
drawAbout: fn()
绘制“关于”界面
drawArrow: fn(name: string|CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, style?: string, lineWidth?: number)
在某个canvas上绘制一个箭头
@ -1761,12 +1762,6 @@ drawBackground: fn(left: string, top: string, right: string, bottom: string, pos
drawBook: fn(index?: ?)
绘制怪物手册
drawBookDetail: fn(index?: ?)
绘制怪物属性的详细信息
drawCenterFly: fn()
绘制中心对称飞行器
drawChoices: fn(content?: string, choices?: [?])
绘制一个选项界面
@ -1777,21 +1772,9 @@ text: 要绘制的内容,支持 ${} 语法
yesCallback: 点击确认后的回调
noCallback: 点击取消后的回调
drawCursor: fn()
绘制键盘光标
drawEquipbox: fn(index?: ?)
绘制装备界面
drawFly: fn(page?: ?)
绘制楼层传送器
drawGameInfo: fn()
绘制游戏信息界面
drawHelp: fn()
绘制帮助页面
drawIcon: fn(name: string|CanvasRenderingContext2D, id: string, x: number, y: number, w?: number, h?: number, frame?: number)
在某个canvas上绘制一个图标
@ -1803,58 +1786,19 @@ image: 要绘制的图片,可以是一个全塔属性中定义的图片名(
angle旋转角度
参考资料http://www.w3school.com.cn/html5/canvas_drawimage.asp
drawKeyBoard: fn()
绘制虚拟键盘
drawLine: fn(name: string|CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, style?: string, lineWidth?: number)
在某个canvas上绘制一条线
参考资料https://www.w3school.com.cn/tags/canvas_lineto.asp
drawLocalSaveSelect: fn()
绘制单存档界面
drawMaps: fn(index?: ?, x?: number, y?: number)
绘制浏览地图界面
drawNotes: fn()
绘制存档笔记
drawPagination: fn(page?: ?, totalPage?: ?, y?: number)
绘制分页
drawQuickShop: fn()
绘制快捷商店选择栏
drawReplay: fn()
绘制回放界面
drawSLPanel: fn(index?: ?, refresh?: bool)
绘制存档/读档界面
drawScrollText: fn(content: string, time: number, lineHeight?: number, callback?: fn())
绘制滚动字幕
drawSettings: fn()
绘制系统菜单栏
drawStatistics: fn(floorIds?: string)
绘制“数据统计”界面
drawStatusBar: fn()
绘制状态栏
drawStorageRemove: fn()
绘制存档删除页面
drawSwitchs: fn()
绘制系统设置界面
drawSyncSave: fn()
绘制存档同步界面
drawSyncSelect: fn()
绘制存档同步选择页面
drawText: fn(contents: string, callback?: fn())
地图中间绘制一段文字
@ -1876,15 +1820,16 @@ text: 要提示的字符串,支持${}语法
id: 要绘制的图标ID
frame: 要绘制该图标的第几帧
drawToolbox: fn(index?: ?)
绘制道具栏
drawUIEventSelector: fn(code: number, background: string, x: number, y: number, w: number, h: number, z?: number)
自绘一个闪烁的选择光标
code: 选择光标的编号,必填
background: 要绘制的光标背景必须是一个合法的WindowSkin
x, y, w, h: 绘制的坐标和长宽
z: 可选光标的的z值
drawWaiting: fn(text: string)
绘制等待界面
drawWindowSelector: fn(background: ?, x: number, y: number, w: number, h: number)
绘制选择光标
drawWindowSkin: fn(background: string, ctx: string|CanvasRenderingContext2D, x: number, y: number, w: string, h: string, direction?: string, px?: number, py?: number)
绘制WindowSkin

View File

@ -3332,18 +3332,6 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!doc": "删除一个自定义画布",
"!type": "fn(name: string)"
},
"drawSLPanel": {
"!doc": "绘制存档/读档界面",
"!type": "fn(index?: ?, refresh?: bool)"
},
"drawKeyBoard": {
"!doc": "绘制虚拟键盘",
"!type": "fn()"
},
"drawStorageRemove": {
"!doc": "绘制存档删除页面",
"!type": "fn()"
},
"deleteAllCanvas": {
"!doc": "清空所有的自定义画布",
"!type": "fn()"
@ -3360,30 +3348,14 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!doc": "设置某个canvas整体的透明度此函数直接改变画布本身对已经绘制的内容也生效<br/>如果仅想对接下来的绘制生效请使用setAlpha",
"!type": "fn(name: string|CanvasRenderingContext2D, opacity: number)"
},
"drawAbout": {
"!doc": "绘制“关于”界面",
"!type": "fn()"
},
"getTextContentHeight": {
"!doc": "获得某段文字的预计绘制高度;参数说明详见 drawTextContent",
"!type": "fn(content: string, config?: ?)"
},
"drawSwitchs": {
"!doc": "绘制系统设置界面",
"!type": "fn()"
},
"drawSyncSelect": {
"!doc": "绘制存档同步选择页面",
"!type": "fn()"
},
"drawArrow": {
"!doc": "在某个canvas上绘制一个箭头",
"!type": "fn(name: string|CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, style?: string, lineWidth?: number)"
},
"drawReplay": {
"!doc": "绘制回放界面",
"!type": "fn()"
},
"strokeEllipse": {
"!doc": "在某个canvas上绘制一个椭圆的边框",
"!type": "fn(name: string|CanvasRenderingContext2D, x: number, y: number, a: number, b: number, angle?: number, style?: string, lineWidth?: number)"
@ -3435,14 +3407,18 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!doc": "绘制一个确认框<br/>此项会打断事件流如需不打断版本的请使用core.myconfirm()<br/>text: 要绘制的内容,支持 ${} 语法<br/>yesCallback: 点击确认后的回调<br/>noCallback: 点击取消后的回调",
"!type": "fn(text: string, yesCallback?: fn(), noCallback?: fn())"
},
"drawUIEventSelector": {
"!doc": "自绘一个闪烁的选择光标<br/>code: 选择光标的编号,必填<br/>background: 要绘制的光标背景必须是一个合法的WindowSkin<br/>x, y, w, h: 绘制的坐标和长宽<br/>z: 可选光标的的z值",
"!type": "fn(code: number, background: string, x: number, y: number, w: number, h: number, z?: number)"
},
"clearUIEventSelector": {
"!doc": "清除若干个自绘的选择光标<br/>codes: 清除的光标编号;可以是单个编号或编号数组;不填则清除所有光标",
"!type": "fn(codes?: number|[number])"
},
"fillPolygon": {
"!doc": "在某个canvas上绘制一个多边形",
"!type": "fn(name: string|CanvasRenderingContext2D, nodes?: [[number]], style?: string)"
},
"drawStatistics": {
"!doc": "绘制“数据统计”界面",
"!type": "fn(floorIds?: string)"
},
"fillText": {
"!doc": "在某个画布上绘制一段文字<br/>text: 要绘制的文本<br/>style: 绘制的样式<br/>font: 绘制的字体<br/>最大宽度,超过此宽度会自动放缩",
"!url": "https://www.w3school.com.cn/tags/canvas_filltext.asp",
@ -3453,10 +3429,6 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!url": "https://www.w3school.com.cn/tags/canvas_textbaseline.asp",
"!type": "fn(name: string|CanvasRenderingContext2D, baseline: string)"
},
"drawSettings": {
"!doc": "绘制系统菜单栏",
"!type": "fn()"
},
"loadCanvas": {
"!doc": "加载某个canvas状态",
"!type": "fn(name: string|CanvasRenderingContext2D)"
@ -3475,10 +3447,6 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!url": "https://www.w3school.com.cn/tags/canvas_linewidth.asp",
"!type": "fn(name: string|CanvasRenderingContext2D, lineWidth: number)"
},
"drawEquipbox": {
"!doc": "绘制装备界面",
"!type": "fn(index?: ?)"
},
"drawTextBox": {
"!doc": "绘制一个对话框",
"!type": "fn(content: string, showAll?: bool)"
@ -3512,10 +3480,6 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!doc": "绘制WindowSkin",
"!type": "fn(background: string, ctx: string|CanvasRenderingContext2D, x: number, y: number, w: string, h: string, direction?: string, px?: number, py?: number)"
},
"drawGameInfo": {
"!doc": "绘制游戏信息界面",
"!type": "fn()"
},
"fillRect": {
"!doc": "绘制一个矩形。<br/>x,y: 绘制的坐标<br/>width,height: 绘制的长宽<br/>style: 绘制的样式<br/>angle: 旋转的角度弧度制如Math.PI/2代表90度",
"!url": "https://www.w3school.com.cn/tags/canvas_fillrect.asp",
@ -3534,10 +3498,6 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!url": "https://www.w3school.com.cn/tags/canvas_arc.asp",
"!type": "fn(name: string|CanvasRenderingContext2D, x: number, y: number, r: ?, style?: string, lineWidth?: number)"
},
"drawLocalSaveSelect": {
"!doc": "绘制单存档界面",
"!type": "fn()"
},
"drawWaiting": {
"!doc": "绘制等待界面",
"!type": "fn(text: string)"
@ -3574,10 +3534,6 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!url": "https://www.w3school.com.cn/tags/canvas_arc.asp",
"!type": "fn(name: string|CanvasRenderingContext2D, x: number, y: number, r: number, start: number, end: number, style?: string)"
},
"drawWindowSelector": {
"!doc": "绘制选择光标",
"!type": "fn(background: ?, x: number, y: number, w: number, h: number)"
},
"strokeArc": {
"!doc": "在某个canvas上绘制一段弧",
"!url": "https://www.w3school.com.cn/tags/canvas_arc.asp",
@ -3592,34 +3548,10 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!doc": "绘制分页",
"!type": "fn(page?: ?, totalPage?: ?, y?: number)"
},
"drawBookDetail": {
"!doc": "绘制怪物属性的详细信息",
"!type": "fn(index?: ?)"
},
"getToolboxItems": {
"!doc": "获得所有应该在道具栏显示的某个类型道具",
"!type": "fn(cls: string) -> [string]"
},
"drawToolbox": {
"!doc": "绘制道具栏",
"!type": "fn(index?: ?)"
},
"drawHelp": {
"!doc": "绘制帮助页面",
"!type": "fn()"
},
"drawNotes": {
"!doc": "绘制存档笔记",
"!type": "fn()"
},
"drawQuickShop": {
"!doc": "绘制快捷商店选择栏",
"!type": "fn()"
},
"drawCenterFly": {
"!doc": "绘制中心对称飞行器",
"!type": "fn()"
},
"strokeRect": {
"!doc": "绘制一个矩形的边框<br/>style: 绘制的样式<br/>lineWidth: 线宽<br/>angle: 旋转角度弧度制如Math.PI/2为90度",
"!url": "https://www.w3school.com.cn/tags/canvas_strokerect.asp",
@ -3637,18 +3569,10 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!doc": "在某个画布上绘制一个描边文字<br/>text: 要绘制的文本<br/>style: 绘制的样式<br/>strokeStyle: 要绘制的描边颜色<br/>font: 绘制的字体",
"!type": "fn(name: string|CanvasRenderingContext2D, text: string, x: number, y: number, style?: string, strokeStyle?: string, font?: string)"
},
"drawSyncSave": {
"!doc": "绘制存档同步界面",
"!type": "fn()"
},
"saveCanvas": {
"!doc": "保存某个canvas状态",
"!type": "fn(name: string|CanvasRenderingContext2D)"
},
"drawCursor": {
"!doc": "绘制键盘光标",
"!type": "fn()"
},
"createCanvas": {
"!doc": "动态创建一个画布。<br/>name 要创建的画布名,如果已存在则会直接取用当前存在的。<br/>x,y: 创建的画布相对窗口左上角的像素坐标<br/>width,height: 创建的长宽。<br/>zIndex: 创建的纵向高度关系到画布之间的覆盖z值高的将覆盖z值低的系统画布的z值可在个性化中查看。<br/>返回创建的画布的context也可以通过core.dymCanvas[name]调用。",
"!type": "fn(name: string, x: number, y: number, width: number, height: number, zIndex: number) -> CanvasRenderingContext2D"
@ -3658,10 +3582,6 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!url": "https://www.w3school.com.cn/tags/canvas_textalign.asp",
"!type": "fn(name: string|CanvasRenderingContext2D, align: string)"
},
"drawMaps": {
"!doc": "绘制浏览地图界面",
"!type": "fn(index?: ?, x?: number, y?: number)"
}
},
"enemys": {
"!doc": "定义了一系列和怪物相关的API函数。",

View File

@ -178,7 +178,7 @@ actions.prototype._sys_onkeyUp_replay = function (e) {
else if (e.keyCode == 81) // Q
core.equipboxReplay();
else if (e.keyCode == 66) // B
core.drawStatistics();
core.ui._drawStatistics();
else if (e.keyCode >= 49 && e.keyCode <= 51) // 1-3
core.setReplaySpeed(e.keyCode - 48);
else if (e.keyCode == 52) // 4
@ -712,8 +712,8 @@ actions.prototype._sys_onmousewheel = function (direct) {
// 存读档
if (core.status.lockControl && (core.status.event.id == 'save' || core.status.event.id == 'load')) {
var index = core.status.event.data.page*10+core.status.event.data.offset;
if (direct == 1) core.ui.drawSLPanel(index - 10);
if (direct == -1) core.ui.drawSLPanel(index + 10);
if (direct == 1) core.ui._drawSLPanel(index - 10);
if (direct == -1) core.ui._drawSLPanel(index + 10);
return;
}
@ -810,7 +810,7 @@ actions.prototype._sys_longClick = function (x, y, fromEvent) {
if (!core.status.lockControl && !fromEvent) {
// 虚拟键盘
core.waitHeroToStop(function () {
core.ui.drawKeyBoard();
core.ui._drawKeyBoard();
});
return true;
}
@ -1070,7 +1070,7 @@ actions.prototype._clickBook = function (x, y) {
}
else if (core.status.event.ui != null) {
core.status.boxAnimateObjs = [];
core.ui.drawMaps(core.status.event.ui);
core.ui._drawViewMaps(core.status.event.ui);
}
else core.ui.closePanel();
return;
@ -1085,7 +1085,7 @@ actions.prototype._clickBook = function (x, y) {
if (y >= u*i && y < u*(i+1)) {
var index = per_page * page + i;
core.ui.drawBook(index);
core.ui.drawBookDetail(index);
core.ui._drawBookDetail(index);
break;
}
}
@ -1113,7 +1113,7 @@ actions.prototype._keyUpBook = function (keycode) {
}
else if (core.status.event.ui != null) {
core.status.boxAnimateObjs = [];
core.ui.drawMaps(core.status.event.ui);
core.ui._drawViewMaps(core.status.event.ui);
}
else core.ui.closePanel();
return;
@ -1121,7 +1121,7 @@ actions.prototype._keyUpBook = function (keycode) {
if (keycode == 13 || keycode == 32 || keycode == 67) {
var data = core.status.event.data;
if (data != null) {
core.ui.drawBookDetail(data);
core.ui._drawBookDetail(data);
}
return;
}
@ -1185,7 +1185,7 @@ actions.prototype._keyUpFly = function (keycode) {
////// 查看地图界面时的点击操作 //////
actions.prototype._clickViewMaps = function (x, y) {
if (core.status.event.data == null) {
core.ui.drawMaps(core.floorIds.indexOf(core.status.floorId));
core.ui._drawViewMaps(core.floorIds.indexOf(core.status.floorId));
return;
}
var now = core.floorIds.indexOf(core.status.floorId);
@ -1196,35 +1196,35 @@ actions.prototype._clickViewMaps = function (x, y) {
if (x <= per - 2 && y <= per - 2) {
core.status.event.data.damage = !core.status.event.data.damage;
core.ui.drawMaps(index, cx, cy);
core.ui._drawViewMaps(index, cx, cy);
return;
}
if (x <= per - 2 && y >= this.SIZE + 1 - per) {
if (core.markedFloorIds[floorId]) delete core.markedFloorIds[floorId];
else core.markedFloorIds[floorId] = true;
core.ui.drawMaps(index, cx, cy);
core.ui._drawViewMaps(index, cx, cy);
return;
}
if (x >= this.SIZE + 1 - per && y <= per - 2) {
core.status.event.data.all = !core.status.event.data.all;
core.ui.drawMaps(index, cx, cy);
core.ui._drawViewMaps(index, cx, cy);
return;
}
if (x >= per && x <= this.LAST - per && y <= per - 1 && (!core.status.event.data.all && mh > this.SIZE)) {
core.ui.drawMaps(index, cx, cy - 1);
core.ui._drawViewMaps(index, cx, cy - 1);
return;
}
if (x >= per && x <= this.LAST - per && y >= this.SIZE - per && (!core.status.event.data.all && mh > this.SIZE)) {
core.ui.drawMaps(index, cx, cy + 1);
core.ui._drawViewMaps(index, cx, cy + 1);
return;
}
if (x <= per - 1 && y >= per && y <= this.LAST - per) {
core.ui.drawMaps(index, cx - 1, cy);
core.ui._drawViewMaps(index, cx - 1, cy);
return;
}
if (x >= this.SIZE - per && y >= per && y <= this.LAST - per) {
core.ui.drawMaps(index, cx + 1, cy);
core.ui._drawViewMaps(index, cx + 1, cy);
return;
}
@ -1233,7 +1233,7 @@ actions.prototype._clickViewMaps = function (x, y) {
while (index < core.floorIds.length && index != now && core.status.maps[core.floorIds[index]].cannotViewMap)
index++;
if (index < core.floorIds.length)
core.ui.drawMaps(index);
core.ui._drawViewMaps(index);
return;
}
if (y >= this.HSIZE + 2 && (mh == this.SIZE || (x >= per && x <= this.LAST - per))) {
@ -1241,7 +1241,7 @@ actions.prototype._clickViewMaps = function (x, y) {
while (index >= 0 && index != now && core.status.maps[core.floorIds[index]].cannotViewMap)
index--;
if (index >= 0)
core.ui.drawMaps(index);
core.ui._drawViewMaps(index);
return;
}
if (x >= per && x <= this.LAST - per && y >= this.HSIZE - 1 && y <= this.HSIZE + 1) {
@ -1269,7 +1269,7 @@ actions.prototype._keyDownViewMaps = function (keycode) {
////// 查看地图界面时,放开某个键的操作 //////
actions.prototype._keyUpViewMaps = function (keycode) {
if (core.status.event.data == null) {
core.ui.drawMaps(core.floorIds.indexOf(core.status.floorId));
core.ui._drawViewMaps(core.floorIds.indexOf(core.status.floorId));
return;
}
var floorId = core.floorIds[core.status.event.data.index];
@ -1281,18 +1281,18 @@ actions.prototype._keyUpViewMaps = function (keycode) {
}
if (keycode == 86) {
core.status.event.data.damage = !core.status.event.data.damage;
core.ui.drawMaps(core.status.event.data);
core.ui._drawViewMaps(core.status.event.data);
return;
}
if (keycode == 90) {
core.status.event.data.all = !core.status.event.data.all;
core.ui.drawMaps(core.status.event.data);
core.ui._drawViewMaps(core.status.event.data);
return;
}
if (keycode == 66) {
if (core.markedFloorIds[floorId]) delete core.markedFloorIds[floorId];
else core.markedFloorIds[floorId] = true;
core.ui.drawMaps(core.status.event.data);
core.ui._drawViewMaps(core.status.event.data);
return;
}
if (keycode == 88 || (core.isReplaying() && keycode == 67)) {
@ -1369,22 +1369,22 @@ actions.prototype._clickToolbox = function (x, y) {
if (x == this.HSIZE-2 || x == this.HSIZE-3) {
if (y == this.LAST - 5 && toolsPage > 1) {
core.status.event.data.toolsPage--;
core.ui.drawToolbox(core.status.event.selection);
core.ui._drawToolbox(core.status.event.selection);
}
if (y == this.LAST && constantsPage > 1) {
core.status.event.data.constantsPage--;
core.ui.drawToolbox(core.status.event.selection);
core.ui._drawToolbox(core.status.event.selection);
}
}
// 下一页
if (x == this.HSIZE+2 || x == this.HSIZE+3) {
if (y == this.LAST - 5 && toolsPage < Math.ceil(tools.length / this.LAST)) {
core.status.event.data.toolsPage++;
core.ui.drawToolbox(core.status.event.selection);
core.ui._drawToolbox(core.status.event.selection);
}
if (y == this.LAST && constantsPage < Math.ceil(constants.length / this.LAST)) {
core.status.event.data.constantsPage++;
core.ui.drawToolbox(core.status.event.selection);
core.ui._drawToolbox(core.status.event.selection);
}
}
@ -1421,7 +1421,7 @@ actions.prototype._clickToolboxIndex = function (index) {
core.events.tryUseItem(itemId);
}
else {
core.ui.drawToolbox(index);
core.ui._drawToolbox(index);
}
}
@ -1559,7 +1559,7 @@ actions.prototype._clickEquipbox = function (x, y) {
if ((x == this.HSIZE-2 || x == this.HSIZE-3) && y == this.LAST) {
if (core.status.event.data.page > 1) {
core.status.event.data.page--;
core.ui.drawEquipbox(core.status.event.selection);
core.ui._drawEquipbox(core.status.event.selection);
}
return;
}
@ -1568,7 +1568,7 @@ actions.prototype._clickEquipbox = function (x, y) {
var lastPage = Math.ceil(core.getToolboxItems('equips').length / this.LAST);
if (core.status.event.data.page < lastPage) {
core.status.event.data.page++;
core.ui.drawEquipbox(core.status.event.selection);
core.ui._drawEquipbox(core.status.event.selection);
}
return;
}
@ -1609,7 +1609,7 @@ actions.prototype._clickEquipboxIndex = function (index) {
core.status.route.push("equip:" + equipId);
}
}
core.ui.drawEquipbox(index);
core.ui._drawEquipbox(index);
}
////// 装备栏界面时,按下某个键的操作 //////
@ -1720,12 +1720,12 @@ actions.prototype._clickSL = function (x, y) {
// 上一页
if ((x == this.HSIZE-2 || x == this.HSIZE-3) && y == this.LAST) {
core.ui.drawSLPanel(10 * (page - 1) + offset);
core.ui._drawSLPanel(10 * (page - 1) + offset);
return;
}
// 下一页
if ((x == this.HSIZE+2 || x == this.HSIZE+3) && y == this.LAST) {
core.ui.drawSLPanel(10 * (page + 1) + offset);
core.ui._drawSLPanel(10 * (page + 1) + offset);
return;
}
// 返回
@ -1742,16 +1742,16 @@ actions.prototype._clickSL = function (x, y) {
if (x >= 0 && x <= 2 && y == this.LAST) {
if (core.status.event.id == 'save') {
core.status.event.selection = !core.status.event.selection;
core.ui.drawSLPanel(index);
core.ui._drawSLPanel(index);
}
else { // 显示收藏
core.status.event.data.mode = core.status.event.data.mode == 'all'?'fav':'all';
if (core.status.event.data.mode == 'fav')
core.ui.drawSLPanel(1, true);
core.ui._drawSLPanel(1, true);
else {
page = parseInt((core.saves.saveIndex-1)/5);
offset = core.saves.saveIndex-5*page;
core.ui.drawSLPanel(10*page + offset, true);
core.ui._drawSLPanel(10*page + offset, true);
}
}
return;
@ -1786,7 +1786,7 @@ actions.prototype._clickSL = function (x, y) {
core.drawTip("无法删除自动存档!");
else {
core.removeSave(id, function () {
core.ui.drawSLPanel(index, true);
core.ui._drawSLPanel(index, true);
});
}
}
@ -1807,7 +1807,7 @@ actions.prototype._clickSL_favorite = function (page, offset) {
if(value && value.length <= 5){
core.saves.favoriteName[index] = value;
core.control._updateFavoriteSaves();
core.drawSLPanel(10 * page + offset);
core.ui._drawSLPanel(10 * page + offset);
} else if (value) {
alert("无效的输入!");
}
@ -1824,7 +1824,7 @@ actions.prototype._clickSL_favorite = function (page, offset) {
core.drawTip("收藏成功!");
}
core.control._updateFavoriteSaves();
core.ui.drawSLPanel(10 * page + offset);
core.ui._drawSLPanel(10 * page + offset);
}
}
@ -1837,46 +1837,46 @@ actions.prototype._keyDownSL = function (keycode) {
if (keycode == 37) { // left
if (offset == 0) {
core.ui.drawSLPanel(10 * (page - 1) + 5);
core.ui._drawSLPanel(10 * (page - 1) + 5);
}
else {
core.ui.drawSLPanel(index - 1);
core.ui._drawSLPanel(index - 1);
}
return;
}
if (keycode == 38) { // up
if (offset < 3) {
core.ui.drawSLPanel(10 * (page - 1) + offset + 3);
core.ui._drawSLPanel(10 * (page - 1) + offset + 3);
}
else {
core.ui.drawSLPanel(index - 3);
core.ui._drawSLPanel(index - 3);
}
return;
}
if (keycode == 39) { // right
if (offset == 5) {
core.ui.drawSLPanel(10 * (page + 1) + 1);
core.ui._drawSLPanel(10 * (page + 1) + 1);
}
else {
core.ui.drawSLPanel(index + 1);
core.ui._drawSLPanel(index + 1);
}
return;
}
if (keycode == 40) { // down
if (offset >= 3) {
core.ui.drawSLPanel(10 * (page + 1) + offset - 3);
core.ui._drawSLPanel(10 * (page + 1) + offset - 3);
}
else {
core.ui.drawSLPanel(index + 3);
core.ui._drawSLPanel(index + 3);
}
return;
}
if (keycode == 33) { // PAGEUP
core.ui.drawSLPanel(10 * (page - 1) + offset);
core.ui._drawSLPanel(10 * (page - 1) + offset);
return;
}
if (keycode == 34) { // PAGEDOWN
core.ui.drawSLPanel(10 * (page + 1) + offset);
core.ui._drawSLPanel(10 * (page + 1) + offset);
return;
}
}
@ -1893,7 +1893,7 @@ actions.prototype._keyUpSL = function (keycode) {
}
if (keycode >= 48 && keycode <= 57) {
if (keycode == 48) keycode = 58;
core.ui.drawSLPanel((keycode - 49) * 1000 + 1);
core.ui._drawSLPanel((keycode - 49) * 1000 + 1);
return;
}
if (keycode == 13 || keycode == 32 || keycode == 67) {
@ -1918,7 +1918,7 @@ actions.prototype._keyUpSL = function (keycode) {
var id = 5 * page + offset;
if(core.status.event.data.mode == 'fav') id = core.saves.favorite[id - 1];
core.removeSave(id, function () {
core.ui.drawSLPanel(index, true);
core.ui._drawSLPanel(index, true);
});
}
}
@ -1970,7 +1970,7 @@ actions.prototype._clickSwitchs = function (x, y) {
return this._clickSwitchs_clickMove();
case 9:
core.status.event.selection = 0;
core.ui.drawSettings();
core.ui._drawSettings();
break;
}
}
@ -1994,7 +1994,7 @@ actions.prototype._clickSwitchs_bgmSound = function () {
core.triggerBgm();
core.musicStatus.soundStatus = sound;
core.setLocalStorage('soundStatus', core.musicStatus.soundStatus);
core.ui.drawSwitchs();
core.ui._drawSwitchs();
}
actions.prototype._clickSwitchs_userVolume = function (delta) {
@ -2005,19 +2005,19 @@ actions.prototype._clickSwitchs_userVolume = function (delta) {
if (core.musicStatus.gainNode != null) core.musicStatus.gainNode.gain.value = core.musicStatus.userVolume;
if (core.musicStatus.playingBgm) core.material.bgms[core.musicStatus.playingBgm].volume = core.musicStatus.userVolume * core.musicStatus.designVolume;
core.setLocalStorage('userVolume', core.musicStatus.userVolume);
core.ui.drawSwitchs();
core.ui._drawSwitchs();
}
actions.prototype._clickSwitchs_moveSpeed = function (delta) {
core.values.moveSpeed = core.clamp(core.values.moveSpeed + delta, 50, 200);
core.setLocalStorage("moveSpeed", core.values.moveSpeed);
core.ui.drawSwitchs();
core.ui._drawSwitchs();
}
actions.prototype._clickSwitchs_floorChangeTime = function (delta) {
core.values.floorChangeTime = core.clamp(core.values.floorChangeTime + delta, 0, 2000);
core.setLocalStorage("floorChangeTime", core.values.floorChangeTime);
core.ui.drawSwitchs();
core.ui._drawSwitchs();
}
actions.prototype._clickSwitchs_setSize = function (delta) {
@ -2028,14 +2028,14 @@ actions.prototype._clickSwitchs_setSize = function (delta) {
core.domStyle.scale = core.domStyle.availableScale[index];
core.setLocalStorage('scale', core.domStyle.scale);
core.resize();
core.ui.drawSwitchs();
core.ui._drawSwitchs();
}
actions.prototype._clickSwitchs_displayEnemyDamage = function () {
core.flags.displayEnemyDamage = !core.flags.displayEnemyDamage;
core.updateDamage();
core.setLocalStorage('enemyDamage', core.flags.displayEnemyDamage);
core.ui.drawSwitchs();
core.ui._drawSwitchs();
}
actions.prototype._clickSwitchs_displayCriticalExtra = function () {
@ -2059,26 +2059,26 @@ actions.prototype._clickSwitchs_displayCriticalExtra = function () {
core.updateDamage();
core.setLocalStorage('critical', core.flags.displayCritical);
core.setLocalStorage('extraDamage', core.flags.displayExtraDamage);
core.ui.drawSwitchs();
core.ui._drawSwitchs();
}
actions.prototype._clickSwitchs_potionNoRouting = function () {
if (core.hasFlag('__potionNoRouting__')) core.removeFlag('__potionNoRouting__');
else core.setFlag('__potionNoRouting__', true);
core.ui.drawSwitchs();
core.ui._drawSwitchs();
}
actions.prototype._clickSwitchs_clickMove = function () {
if (core.hasFlag('__noClickMove__')) core.removeFlag('__noClickMove__');
else core.setFlag('__noClickMove__', true);
core.ui.drawSwitchs();
core.ui._drawSwitchs();
}
////// 系统设置界面时,放开某个键的操作 //////
actions.prototype._keyUpSwitchs = function (keycode) {
if (keycode == 27 || keycode == 88) {
core.status.event.selection = 0;
core.ui.drawSettings();
core.ui._drawSettings();
return;
}
if (keycode == 37) {
@ -2110,26 +2110,26 @@ actions.prototype._clickSettings = function (x, y) {
switch (selection) {
case 0:
core.status.event.selection = 0;
core.ui.drawSwitchs();
core.ui._drawSwitchs();
break;
case 1:
core.ui.drawKeyBoard();
core.ui._drawKeyBoard();
break;
case 2:
core.clearUI();
core.ui.drawMaps();
core.ui._drawViewMaps();
break;
case 3:
core.status.event.selection = 0;
core.ui.drawNotes();
core.ui._drawNotes();
break;
case 4:
core.status.event.selection = 0;
core.ui.drawSyncSave();
core.ui._drawSyncSave();
break;
case 5:
core.status.event.selection = 0;
core.ui.drawGameInfo();
core.ui._drawGameInfo();
break;
case 6:
return core.confirmRestart();
@ -2174,7 +2174,7 @@ actions.prototype._clickNotes = function (x, y) {
break;
case 4:
core.status.event.selection = 3;
core.ui.drawSettings();
core.ui._drawSettings();
break;
}
}
@ -2276,7 +2276,7 @@ actions.prototype._clickNotes_delete = function () {
actions.prototype._keyUpNotes = function (keycode) {
if (keycode == 27 || keycode == 88) {
core.status.event.selection = 3;
core.ui.drawSettings();
core.ui._drawSettings();
return;
}
this._selectChoices(core.status.event.ui.choices.length, keycode, this._clickNotes);
@ -2293,14 +2293,14 @@ actions.prototype._clickSyncSave = function (x, y) {
switch (selection) {
case 0:
core.status.event.selection = 0;
core.ui.drawSyncSelect();
core.ui._drawSyncSelect();
break;
case 1:
core.syncLoad();
break;
case 2:
core.status.event.selection = 0;
core.ui.drawLocalSaveSelect();
core.ui._drawLocalSaveSelect();
break;
case 3:
return this._clickSyncSave_readFile();
@ -2308,11 +2308,11 @@ actions.prototype._clickSyncSave = function (x, y) {
return this._clickSyncSave_replay();
case 5:
core.status.event.selection = 0;
core.ui.drawStorageRemove();
core.ui._drawStorageRemove();
break;
case 6:
core.status.event.selection = 4;
core.ui.drawSettings();
core.ui._drawSettings();
break;
}
@ -2330,14 +2330,14 @@ actions.prototype._clickSyncSave_readFile = function () {
}
actions.prototype._clickSyncSave_replay = function () {
core.ui.drawReplay();
core.ui._drawReplay();
}
////// 同步存档界面时,放开某个键的操作 //////
actions.prototype._keyUpSyncSave = function (keycode) {
if (keycode == 27 || keycode == 88) {
core.status.event.selection = 2;
core.ui.drawSettings();
core.ui._drawSettings();
return;
}
this._selectChoices(core.status.event.ui.choices.length, keycode, this._clickSyncSave);
@ -2363,7 +2363,7 @@ actions.prototype._clickSyncSelect = function (x, y) {
break;
case 2:
core.status.event.selection = 0;
core.ui.drawSyncSave();
core.ui._drawSyncSave();
break;
}
}
@ -2373,7 +2373,7 @@ actions.prototype._clickSyncSelect = function (x, y) {
actions.prototype._keyUpSyncSelect = function (keycode) {
if (keycode == 27 || keycode == 88) {
core.status.event.selection = 0;
core.ui.drawSettings();
core.ui._drawSettings();
return;
}
this._selectChoices(core.status.event.ui.choices.length, keycode, this._clickSyncSelect);
@ -2405,7 +2405,7 @@ actions.prototype._clickLocalSaveSelect = function (x, y) {
}
core.status.event.selection = 2;
core.ui.drawSyncSave();
core.ui._drawSyncSave();
}
}
@ -2413,7 +2413,7 @@ actions.prototype._clickLocalSaveSelect = function (x, y) {
actions.prototype._keyUpLocalSaveSelect = function (keycode) {
if (keycode == 27 || keycode == 88) {
core.status.event.selection = 0;
core.ui.drawSettings();
core.ui._drawSettings();
return;
}
this._selectChoices(core.status.event.ui.choices.length, keycode, this._clickLocalSaveSelect);
@ -2436,7 +2436,7 @@ actions.prototype._clickStorageRemove = function (x, y) {
return this._clickStorageRemove_current();
case 2:
core.status.event.selection = 6;
core.ui.drawSyncSave();
core.ui._drawSyncSave();
break;
}
}
@ -2504,7 +2504,7 @@ actions.prototype._clickStorageRemove_current = function () {
actions.prototype._keyUpStorageRemove = function (keycode) {
if (keycode == 27 || keycode == 88) {
core.status.event.selection = 5;
core.ui.drawSyncSave();
core.ui._drawSyncSave();
return;
}
this._selectChoices(core.status.event.ui.choices.length, keycode, this._clickStorageRemove);
@ -2542,7 +2542,7 @@ actions.prototype._clickReplay_fromLoad = function () {
core.clearUI();
var saveIndex = core.saves.saveIndex;
var page = parseInt((saveIndex - 1) / 5), offset = saveIndex - 5 * page;
core.ui.drawSLPanel(10 * page + offset);
core.ui._drawSLPanel(10 * page + offset);
}
actions.prototype._clickReplay_replayRemain = function () {
@ -2556,7 +2556,7 @@ actions.prototype._clickReplay_replayRemain = function () {
core.lockControl();
var saveIndex = core.saves.saveIndex;
var page = parseInt((saveIndex - 1) / 5), offset = saveIndex - 5 * page;
core.ui.drawSLPanel(10 * page + offset);
core.ui._drawSLPanel(10 * page + offset);
});
}
@ -2591,15 +2591,15 @@ actions.prototype._clickGameInfo = function (x, y) {
var selection = y - topIndex;
core.status.event.selection = selection;
switch (selection) {
case 0: return core.ui.drawStatistics();
case 0: return core.ui._drawStatistics();
case 1: return this._clickGameInfo_openProject();
case 2: return this._clickGameInfo_openComments();
case 3: return core.ui.drawHelp();
case 4: return core.ui.drawAbout();
case 3: return core.ui._drawHelp();
case 4: return core.ui._drawAbout();
case 5: return this._clickGameInfo_download();
case 6:
core.status.event.selection = 5;
core.ui.drawSettings();
core.ui._drawSettings();
break;
}
}
@ -2721,29 +2721,29 @@ actions.prototype._clickCursor = function (x, y) {
}
core.status.automaticRoute.cursorX = x;
core.status.automaticRoute.cursorY = y;
core.ui.drawCursor();
core.ui._drawCursor();
}
////// 光标界面时,按下某个键的操作 //////
actions.prototype._keyDownCursor = function (keycode) {
if (keycode == 37) { // left
core.status.automaticRoute.cursorX--;
core.ui.drawCursor();
core.ui._drawCursor();
return;
}
if (keycode == 38) { // up
core.status.automaticRoute.cursorY--;
core.ui.drawCursor();
core.ui._drawCursor();
return;
}
if (keycode == 39) { // right
core.status.automaticRoute.cursorX++;
core.ui.drawCursor();
core.ui._drawCursor();
return;
}
if (keycode == 40) { // down
core.status.automaticRoute.cursorY++;
core.ui.drawCursor();
core.ui._drawCursor();
return;
}
}

View File

@ -1401,7 +1401,7 @@ control.prototype.saveReplay = function () {
var saveIndex = core.saves.saveIndex;
var page=parseInt((saveIndex-1)/5), offset=saveIndex-5*page;
core.ui.drawSLPanel(10*page+offset);
core.ui._drawSLPanel(10*page+offset);
}
////// 回放时查看怪物手册 //////
@ -1431,7 +1431,7 @@ control.prototype.viewMapReplay = function () {
core.lockControl();
core.status.event.id='viewMaps';
core.ui.drawMaps();
core.ui._drawViewMaps();
}
control.prototype.toolboxReplay = function () {
@ -1442,7 +1442,7 @@ control.prototype.toolboxReplay = function () {
core.lockControl();
core.status.event.id='toolbox';
core.ui.drawToolbox();
core.ui._drawToolbox();
}
control.prototype.equipboxReplay = function () {
@ -1453,7 +1453,7 @@ control.prototype.equipboxReplay = function () {
core.lockControl();
core.status.event.id='equipbox';
core.ui.drawEquipbox();
core.ui._drawEquipbox();
}
////// 是否正在播放录像 //////
@ -1592,7 +1592,7 @@ control.prototype._replayAction_item = function (action) {
index = index%per+per;
}
if (index<0) return false;
core.ui.drawToolbox(index);
core.ui._drawToolbox(index);
setTimeout(function () {
core.ui.closePanel();
core.useItem(itemId, false, core.replay);
@ -1613,7 +1613,7 @@ control.prototype._replayAction_equip = function (action) {
}
core.status.event.data = {"page":Math.floor(index/per)+1, "selectId":null};
index = index%per+per;
core.ui.drawEquipbox(index);
core.ui._drawEquipbox(index);
setTimeout(function () {
core.ui.closePanel();
core.loadEquip(equipId, core.replay);
@ -1625,7 +1625,7 @@ control.prototype._replayAction_unEquip = function (action) {
if (action.indexOf("unEquip:")!=0) return false;
var equipType = parseInt(action.substring(8));
if (!core.isset(equipType)) return false;
core.ui.drawEquipbox(equipType);
core.ui._drawEquipbox(equipType);
core.status.route.push(action);
if (core.status.replay.speed == 24) {
core.unloadEquip(equipType, core.replay);
@ -1911,7 +1911,7 @@ control.prototype._doSL_replayRemain_afterGet = function (id, data) {
core.lockControl();
var saveIndex = core.saves.saveIndex;
var page = parseInt((saveIndex - 1) / 5), offset = saveIndex - 5 * page;
core.ui.drawSLPanel(10 * page + offset);
core.ui._drawSLPanel(10 * page + offset);
});
}
@ -1951,7 +1951,7 @@ control.prototype._syncSave_http = function (type, saves) {
////// 从服务器加载存档 //////
control.prototype.syncLoad = function () {
core.myprompt("请输入存档编号+密码", null, function (idpassword) {
if (!idpassword) return core.ui.drawSyncSave();
if (!idpassword) return core.ui._drawSyncSave();
if (!/^\d{6}\w{4}$/.test(idpassword) && !/^\d{4}\w{3}$/.test(idpassword)) {
core.drawText("不合法的存档编号+密码!");
return;
@ -1999,7 +1999,7 @@ control.prototype._syncLoad_write = function (data) {
core.drawText("同步成功!\n你的本地所有存档均已被覆盖。");
}, function () {
core.status.event.selection=0;
core.ui.drawSyncSave();
core.ui._drawSyncSave();
});
}
else {

View File

@ -2421,7 +2421,7 @@ events.prototype.openBook = function (fromUserAction) {
// 当前是book且从“浏览地图”打开
if (core.status.event.id == 'book' && core.status.event.ui) {
core.status.boxAnimateObjs = [];
core.ui.drawMaps(core.status.event.ui);
core.ui._drawViewMaps(core.status.event.ui);
return;
}
// 从“浏览地图”页面打开
@ -2463,14 +2463,14 @@ events.prototype.flyTo = function (toId, callback) {
events.prototype.openEquipbox = function (fromUserAction) {
if (core.isReplaying()) return;
if (!this._checkStatus('equipbox', fromUserAction)) return;
core.ui.drawEquipbox();
core.ui._drawEquipbox();
}
////// 点击工具栏时的打开操作 //////
events.prototype.openToolbox = function (fromUserAction) {
if (core.isReplaying()) return;
if (!this._checkStatus('toolbox', fromUserAction)) return;
core.ui.drawToolbox();
core.ui._drawToolbox();
}
////// 点击快捷商店按钮时的打开操作 //////
@ -2500,13 +2500,13 @@ events.prototype.openQuickShop = function (fromUserAction) {
}
if (!this._checkStatus('selectShop', fromUserAction)) return;
core.ui.drawQuickShop();
core.ui._drawQuickShop();
}
events.prototype.openKeyBoard = function (fromUserAction) {
if (core.isReplaying()) return;
if (!this._checkStatus('keyBoard', fromUserAction)) return;
core.ui.drawKeyBoard();
core.ui._drawKeyBoard();
}
////// 点击保存按钮时的打开操作 //////
@ -2517,7 +2517,7 @@ events.prototype.save = function (fromUserAction) {
if (!this._checkStatus('save', fromUserAction)) return;
var saveIndex = core.saves.saveIndex;
var page=parseInt((saveIndex-1)/5), offset=saveIndex-5*page;
core.ui.drawSLPanel(10*page+offset);
core.ui._drawSLPanel(10*page+offset);
}
////// 点击读取按钮时的打开操作 //////
@ -2532,13 +2532,13 @@ events.prototype.load = function (fromUserAction) {
core.clearMap('all');
core.status.event = {'id': 'load', 'data': null};
core.status.lockControl = true;
core.ui.drawSLPanel(10*page+offset);
core.ui._drawSLPanel(10*page+offset);
return;
}
if (core.status.event.id == 'load' && core.events.recoverEvents(core.status.event.interval))
return;
if (!this._checkStatus('load', fromUserAction)) return;
core.ui.drawSLPanel(10*page+offset);
core.ui._drawSLPanel(10*page+offset);
}
////// 点击设置按钮时的操作 //////
@ -2546,7 +2546,7 @@ events.prototype.openSettings = function (fromUserAction) {
if (core.isReplaying()) return;
if (!this._checkStatus('settings', fromUserAction))
return;
core.ui.drawSettings();
core.ui._drawSettings();
}
// ------ 一些事件的具体执行过程 ------ //
@ -3077,7 +3077,7 @@ events.prototype.tryUseItem = function (itemId) {
if (itemId == 'book') return core.openBook(false);
if (itemId == 'fly') return core.useFly(false);
if (itemId == 'centerFly') return core.ui.drawCenterFly();
if (itemId == 'centerFly') return core.ui._drawCenterFly();
if (core.canUseItem(itemId)) core.useItem(itemId);
else core.drawTip("当前无法使用" + core.material.items[itemId].name);

View File

@ -831,35 +831,45 @@ ui.prototype._getPosition = function (content) {
return {content: content, position: pos, px: px, py: py, noPeak: noPeak};
}
////// 绘制选择光标
ui.prototype.drawWindowSelector = function(background, x, y, w, h) {
////// 绘制系统选择光标
ui.prototype._drawWindowSelector = function(background, x, y, w, h) {
w = Math.round(w), h = Math.round(h);
var ctx = core.ui.createCanvas("_selector", x, y, w, h, 165);
this._drawSelector(ctx, background, w, h);
}
ui.prototype._uievent_drawSelector = function (data) {
var canvasName = '_uievent_selector_' + (data.code || 0);
if (data.image == null) return core.deleteCanvas(canvasName);
var background = data.image || core.status.textAttribute.background;
////// 自绘一个选择光标
ui.prototype.drawUIEventSelector = function (code, background, x, y, w, h, z) {
var canvasName = '_uievent_selector_' + (code || 0);
var background = background || core.status.textAttribute.background;
if (typeof background != 'string') return;
var x = core.calValue(data.x), y = core.calValue(data.y), w = core.calValue(data.width), h = core.calValue(data.height);
w = Math.round(w); h = Math.round(h);
if (main.mode == 'editor') {
this._drawSelector('uievent', background, w, h, x, y);
return;
}
var z = 136;
if (core.dymCanvas.uievent) z = (parseInt(core.dymCanvas.uievent.canvas.style.zIndex) || 135) + 1;
z = z || (core.dymCanvas.uievent ? (parseInt(core.dymCanvas.uievent.canvas.style.zIndex) || 135) + 1 : 136);
var ctx = core.createCanvas(canvasName, x, y, w, h, z);
ctx.canvas.classList.add('_uievent_selector');
this._drawSelector(ctx, background, w, h);
}
ui.prototype._clearUIEventSelector = function (codes) {
ui.prototype._uievent_drawSelector = function (data) {
if (data.image == null) this.clearUIEventSelector(data.code || 0);
else this.drawUIEventSelector(data.code, data.image, core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height));
}
////// 清除自绘的选择光标
ui.prototype.clearUIEventSelector = function (codes) {
if (codes == null) {
Object.keys(core.dymCanvas).forEach(function (name) {
if (name.startsWith('_uievent_selector_')) {
core.deleteCanvas(name);
}
});
return;
}
if (codes instanceof Array) {
codes.forEach(function (code) { core.ui._clearUIEventSelector(code); });
codes.forEach(function (code) { core.ui.clearUIEventSelector(code); });
return;
}
core.deleteCanvas('_uievent_selector_' + (codes || 0));
@ -1668,7 +1678,7 @@ ui.prototype._drawChoices_drawChoices = function (choices, isWindowSkin, hPos, v
while (core.status.event.selection >= choices.length) core.status.event.selection -= choices.length;
var len = choices[core.status.event.selection].width;
if (isWindowSkin)
this.drawWindowSelector(core.status.textAttribute.background,
this._drawWindowSelector(core.status.textAttribute.background,
this.HPIXEL - len/2 - 5, vPos.choice_top + 32 * core.status.event.selection - 20, len + 10, 28);
else
core.strokeRoundRect('ui', this.HPIXEL - len/2 - 5, vPos.choice_top + 32 * core.status.event.selection - 20,
@ -1709,7 +1719,7 @@ ui.prototype.drawConfirmBox = function (text, yesCallback, noCallback) {
var strokeLeft = this.HPIXEL + (76*core.status.event.selection-38) - parseInt(len/2) - 5;
if (isWindowSkin)
this.drawWindowSelector(core.status.textAttribute.background, strokeLeft, rect.bottom-35-20, len+10, 28);
this._drawWindowSelector(core.status.textAttribute.background, strokeLeft, rect.bottom-35-20, len+10, 28);
else
core.strokeRoundRect('ui', strokeLeft, rect.bottom-35-20, len+10, 28, 6, core.status.globalAttribute.selectColor, 2);
}
@ -1739,7 +1749,7 @@ ui.prototype.drawWaiting = function(text) {
}
////// 绘制系统设置界面 //////
ui.prototype.drawSwitchs = function() {
ui.prototype._drawSwitchs = function() {
core.status.event.id = 'switchs';
var choices = [
"音乐/音效: "+(core.musicStatus.bgmStatus ? "[ON]" : "[OFF]") + " "+(core.musicStatus.soundStatus ? "[ON]" : "[OFF]"),
@ -1759,7 +1769,7 @@ ui.prototype.drawSwitchs = function() {
}
////// 绘制系统菜单栏 //////
ui.prototype.drawSettings = function () {
ui.prototype._drawSettings = function () {
core.status.event.id = 'settings';
this.drawChoices(null, [
"系统设置", "虚拟键盘", "浏览地图", "存档笔记", "同步存档", "游戏信息", "返回标题", "返回游戏"
@ -1767,7 +1777,7 @@ ui.prototype.drawSettings = function () {
}
////// 绘制存档笔记 //////
ui.prototype.drawNotes = function () {
ui.prototype._drawNotes = function () {
core.status.event.id = 'notes';
core.status.hero.notes = core.status.hero.notes || [];
core.lockControl();
@ -1777,7 +1787,7 @@ ui.prototype.drawNotes = function () {
}
////// 绘制快捷商店选择栏 //////
ui.prototype.drawQuickShop = function () {
ui.prototype._drawQuickShop = function () {
core.status.event.id = 'selectShop';
var shopList = core.status.shops, keys = core.listShopIds();
var choices = keys.map(function (shopId) {
@ -1788,7 +1798,7 @@ ui.prototype.drawQuickShop = function () {
}
////// 绘制存档同步界面 //////
ui.prototype.drawSyncSave = function () {
ui.prototype._drawSyncSave = function () {
core.status.event.id = 'syncSave';
this.drawChoices(null, [
"同步存档到服务器", "从服务器加载存档", "存档至本地文件", "从本地文件读档", "回放和下载录像", "清空本地存档", "返回主菜单"
@ -1796,7 +1806,7 @@ ui.prototype.drawSyncSave = function () {
}
////// 绘制存档同步选择页面 //////
ui.prototype.drawSyncSelect = function () {
ui.prototype._drawSyncSelect = function () {
core.status.event.id = 'syncSelect';
this.drawChoices(null, [
"同步本地所有存档", "只同步当前单存档", "返回上级菜单"
@ -1804,7 +1814,7 @@ ui.prototype.drawSyncSelect = function () {
}
////// 绘制单存档界面 //////
ui.prototype.drawLocalSaveSelect = function () {
ui.prototype._drawLocalSaveSelect = function () {
core.status.event.id = 'localSaveSelect';
this.drawChoices(null, [
"下载所有存档", "只下载当前单存档", "返回上级菜单"
@ -1812,14 +1822,14 @@ ui.prototype.drawLocalSaveSelect = function () {
}
////// 绘制存档删除页面 //////
ui.prototype.drawStorageRemove = function () {
ui.prototype._drawStorageRemove = function () {
core.status.event.id = 'storageRemove';
this.drawChoices(null, [
"清空全部塔的存档", "只清空当前塔的存档", "返回上级菜单"
]);
}
ui.prototype.drawReplay = function () {
ui.prototype._drawReplay = function () {
core.lockControl();
core.status.event.id = 'replay';
this.drawChoices(null, [
@ -1827,7 +1837,7 @@ ui.prototype.drawReplay = function () {
]);
}
ui.prototype.drawGameInfo = function () {
ui.prototype._drawGameInfo = function () {
core.status.event.id = 'gameInfo';
this.drawChoices(null, [
"数据统计", "查看工程", "游戏主页", "操作帮助", "关于本塔","下载离线版本", "返回主菜单"
@ -1854,7 +1864,7 @@ ui.prototype.drawPagination = function (page, totalPage, y) {
}
////// 绘制键盘光标 //////
ui.prototype.drawCursor = function () {
ui.prototype._drawCursor = function () {
var automaticRoute = core.status.automaticRoute;
if (automaticRoute.cursorX == null)
automaticRoute.cursorX = core.getHeroLoc('x');
@ -2110,7 +2120,7 @@ ui.prototype._drawBook_drawDamage = function (index, enemy, offset, position) {
}
////// 绘制怪物属性的详细信息 //////
ui.prototype.drawBookDetail = function (index) {
ui.prototype._drawBookDetail = function (index) {
var info = this._drawBookDetail_getInfo(index), enemy = info[0];
if (!enemy) return;
var content = info[1].join("\n");
@ -2296,7 +2306,7 @@ ui.prototype.drawFly = function(page) {
}
////// 绘制中心对称飞行器
ui.prototype.drawCenterFly = function () {
ui.prototype._drawCenterFly = function () {
core.lockControl();
core.status.event.id = 'centerFly';
var fillstyle = 'rgba(255,0,0,0.5)';
@ -2314,7 +2324,7 @@ ui.prototype.drawCenterFly = function () {
}
////// 绘制浏览地图界面 //////
ui.prototype.drawMaps = function (index, x, y) {
ui.prototype._drawViewMaps = function (index, x, y) {
core.lockControl();
core.status.event.id = 'viewMaps';
this.clearUI();
@ -2397,7 +2407,7 @@ ui.prototype._drawMaps_buildData = function (index, x, y) {
}
////// 绘制道具栏 //////
ui.prototype.drawToolbox = function(index) {
ui.prototype._drawToolbox = function(index) {
var info = this._drawToolbox_getInfo(index);
this._drawToolbox_drawBackground();
@ -2535,7 +2545,7 @@ ui.prototype._drawToolbox_drawContent = function (info, line, items, page, drawC
}
////// 绘制装备界面 //////
ui.prototype.drawEquipbox = function(index) {
ui.prototype._drawEquipbox = function(index) {
var info = this._drawEquipbox_getInfo(index);
this._drawToolbox_drawBackground();
@ -2697,7 +2707,7 @@ ui.prototype._drawEquipbox_drawEquiped = function (info, line) {
}
////// 绘制存档/读档界面 //////
ui.prototype.drawSLPanel = function(index, refresh) {
ui.prototype._drawSLPanel = function(index, refresh) {
core.control._loadFavoriteSaves();
if (index == null) index = 1;
if (index < 0) index = 0;
@ -2855,7 +2865,7 @@ ui.prototype._drawSLPanel_drawRecords = function (n) {
}
};
ui.prototype.drawKeyBoard = function () {
ui.prototype._drawKeyBoard = function () {
core.lockControl();
core.status.event.id = 'keyBoard';
core.clearUI();
@ -2892,7 +2902,7 @@ ui.prototype.drawKeyBoard = function () {
core.fillText("ui", "返回游戏", this.HPIXEL + 128, offset-3, '#FFFFFF', this._buildFont(15, true));
if (isWindowSkin)
this.drawWindowSelector(core.status.textAttribute.background, this.HPIXEL + 92, offset - 22, 72, 27);
this._drawWindowSelector(core.status.textAttribute.background, this.HPIXEL + 92, offset - 22, 72, 27);
else
core.strokeRoundRect('ui', this.HPIXEL + 92, offset - 22, 72, 27, 6, core.status.globalAttribute.selectColor, 2);
}
@ -2903,7 +2913,7 @@ ui.prototype.drawStatusBar = function () {
}
////// 绘制“数据统计”界面 //////
ui.prototype.drawStatistics = function (floorIds) {
ui.prototype._drawStatistics = function (floorIds) {
var obj = this._drawStatistics_buildObj();
if (typeof floorIds == 'string') floorIds = [floorIds];
(floorIds || core.floorIds).forEach(function (floorId) {
@ -3072,12 +3082,12 @@ ui.prototype._drawStatistics_generateText = function (obj, type, data) {
}
////// 绘制“关于”界面 //////
ui.prototype.drawAbout = function () {
ui.prototype._drawAbout = function () {
return this.uidata.drawAbout();
}
////// 绘制帮助页面 //////
ui.prototype.drawHelp = function () {
ui.prototype._drawHelp = function () {
core.clearUI();
if (core.material.images.keyboard) {
core.status.event.id = 'help';

View File

@ -808,7 +808,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.load(true);
break;
case 69: // E打开光标
core.ui.drawCursor();
core.ui._drawCursor();
break;
case 84: // T打开道具栏
core.openToolbox(true);
@ -826,17 +826,17 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.getNextItem();
break;
case 82: // R回放录像
core.actions._clickSyncSave_replay();
core.ui._drawReplay();
break;
case 33:
case 34: // PgUp/PgDn浏览地图
core.ui.drawMaps();
core.ui._drawViewMaps();
break;
case 66: // B打开数据统计
core.ui.drawStatistics();
core.ui._drawStatistics();
break;
case 72: // H打开帮助页面
core.ui.drawHelp();
core.ui._drawHelp();
break;
case 77: // M打开存档笔记
core.actions._clickNotes_show();
@ -864,7 +864,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
break;
case 51: // 快捷键3: 飞
if (core.hasItem('centerFly')) {
core.ui.drawCenterFly();
core.ui._drawCenterFly();
}
break;
case 52: // 快捷键4破冰/冰冻/地震/上下楼器/... 其他道具依次判断

View File

@ -493,7 +493,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
// Step 1: 背景和固定的几个文字
core.ui._createUIEvent();
core.clearMap('uievent');
core.ui._clearUIEventSelector([1, 2]);
core.ui.clearUIEventSelector();
core.setTextAlign('uievent', 'left');
core.setTextBaseline('uievent', 'top');
core.fillRect('uievent', 0, 0, 416, 416, 'black');
@ -511,15 +511,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
core.setTextAlign("uievent", "right");
core.fillText("uievent", core.formatBigNumber(core.status.hero[use]), 405, 89);
core.setTextAlign("uievent", "left");
core.ui._uievent_drawSelector({
"type": "drawSelector",
"image": "winskin.png",
"code": 2,
"x": 22 + 100 * type,
"y": 66,
"width": 60,
"height": 33
});
core.ui.drawUIEventSelector(1, "winskin.png", 22 + 100 * type, 66, 60, 33);
if (selectItem != null) {
core.setTextAlign('uievent', 'center');
core.fillText("uievent", type == 0 ? "买入个数" : "卖出个数", 364, 320, null, bigFont);
@ -573,7 +565,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
break;
}
}
core.ui._uievent_drawSelector({ "type": "drawSelector", "image": "winskin.png", "code": 1, "x": 8, "y": 120 + i * 40, "width": 295, "height": 40 });
core.ui.drawUIEventSelector(2, "winskin.png", 8, 120 + i * 40, 295, 40);
if (type == 0 && item.number != null) {
core.fillText("uievent", "存货", 324, 132, null, bigFont);
core.setTextAlign("uievent", "right");
@ -771,7 +763,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
},
{
"type": "function",
"function": "function () { core.deleteCanvas('uievent'); core.ui._clearUIEventSelector([1, 2]); }"
"function": "function () { core.deleteCanvas('uievent'); core.ui.clearUIEventSelector(); }"
}
]);
}
@ -1151,9 +1143,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
// 当前选中的道具类别
var currentCategory = null;
// 重写 core.ui.drawToolbox 以绘制分类类别
var _drawToolbox = core.ui.drawToolbox;
core.ui.drawToolbox = function (index) {
// 重写 core.ui._drawToolbox 以绘制分类类别
var _drawToolbox = core.ui._drawToolbox;
core.ui._drawToolbox = function (index) {
_drawToolbox.call(this, index);
core.setTextAlign('ui', 'left');
core.fillText('ui', '类别[E]' + (currentCategory || "全部"), 15, this.PIXEL - 13);

72
runtime.d.ts vendored
View File

@ -2149,12 +2149,15 @@ declare class ui {
/** 地图中间绘制一段文字 */
drawText(contents: string, callback?: () => any): void
/** 自绘选择光标 */
drawUIEventSelector(code: number, background: string, x: number, y: number, w: number, h: number, z?: number): void
/** 清除一个或多个选择光标 */
clearUIEventSelector(code: number|number[]): void
/** 绘制一个确认框 */
drawConfirmBox(text: string, yesCallback?: () => void, noCallback?: () => void): void
/** 绘制选择光标 */
drawWindowSelector(background: any, x: number, y: number, w: number, h: number): void
/** 绘制WindowSkin */
drawWindowSkin(background: any, ctx: string | CanvasRenderingContext2D, x: number, y: number, w: string, h: string, direction?: any, px?: any, py?: any): void
@ -2190,84 +2193,21 @@ declare class ui {
/** 绘制等待界面 */
drawWaiting(text: string): void
/** 绘制系统设置界面 */
drawSwitchs(): void
/** 绘制系统菜单栏 */
drawSettings(): void
/** 绘制存档笔记 */
drawNotes(): void
/** 绘制快捷商店选择栏 */
drawQuickShop(): void
/** 绘制存档同步界面 */
drawSyncSave(): void
/** 绘制存档同步选择页面 */
drawSyncSelect(): void
/** 绘制单存档界面 */
drawLocalSaveSelect(): void
/** 绘制存档删除页面 */
drawStorageRemove(): void
/** 绘制回放界面 */
drawReplay(): void
/** 绘制游戏信息界面 */
drawGameInfo(): void
/** 绘制分页 */
drawPagination(page?: any, totalPage?: any, y?: number): void
/** 绘制键盘光标 */
drawCursor(): void
/** 绘制怪物手册 */
drawBook(index?: any): void
/** 绘制怪物属性的详细信息 */
drawBookDetail(index?: any): void
/** 绘制楼层传送器 */
drawFly(page?: any): void
/** 绘制中心对称飞行器 */
drawCenterFly(): void
/** 绘制浏览地图界面 */
drawMaps(index?: any, x?: number, y?: number): void
/** 绘制道具栏 */
drawToolbox(index?: any): void
/** 获得所有应该在道具栏显示的某个类型道具 */
getToolboxItems(cls: string): string[]
/** 绘制装备界面 */
drawEquipbox(index?: any): void
/** 绘制存档/读档界面 */
drawSLPanel(index?: any, refresh?: any): void
/** 绘制虚拟键盘 */
drawKeyBoard(): void
/** 绘制状态栏 */
drawStatusBar(): void
/** 绘制“数据统计”界面 */
drawStatistics(floorIds?: string): void
/** 绘制“关于”界面 */
drawAbout(): void
/** 绘制帮助页面 */
drawHelp(): void
/** 绘制灯光效果 */
drawLight(name: string | CanvasRenderingContext2D, color?: any, lights?: any, lightDec?: number): void