From e59bdda35a89658f30203323ef47d168c4552b3f Mon Sep 17 00:00:00 2001 From: strawberry42271 <2806566736@qq.com> Date: Fri, 6 Dec 2024 17:05:15 +0800 Subject: [PATCH] =?UTF-8?q?cg=E6=94=B9=E4=BA=86=E4=B8=80=E4=BA=9B=E4=B8=9C?= =?UTF-8?q?=E8=A5=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/plugins.js | 95 +++++++++++++++++++++++++++++++++------------- 1 file changed, 68 insertions(+), 27 deletions(-) diff --git a/project/plugins.js b/project/plugins.js index 4df96f6..22bf373 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -8663,7 +8663,8 @@ core.plugin.animate = { CGUI.style.transform = "translate(-50%,-50%)" const ctx = CGUI.getContext("2d"); main.dom.CGUI = CGUI; - if (core.getLocalStorage("page", null) == null) core.setLocalStorage("page", 0); + let page = 0; //初始页面 + let show = false; //展示状态 CGUI.onclick = function (e) { try { e.preventDefault(); @@ -8776,7 +8777,7 @@ core.plugin.animate = { ["none", "none", 'none'], ["none", "none", "none"] ] - ]; + ] } //更新 @@ -8800,37 +8801,76 @@ core.plugin.animate = { } onclick(px, py) { //点击 + if (show) { + show = !show + core.clearMap(ctx); + this.drawUI(); + return + } console.log([px, py]); - - if (px >= 33 && px <= 177 && py >= 33 && py <= 177) { //离开按钮是一致的,其余的记区分横竖屏 + const makeBox = ([x, y], [w, h]) => { + return [ + [x, y], + [x + w, y + h] + ]; + } + const inRect = ([x, y], [ + [sx, sy], + [dx, dy] + ]) => { + return sx <= x && x <= dx && sy <= y && y <= dy; + }; + const pos = [px, py]; + const backbox = makeBox([33, 33], [144, 144]) + if (inRect(pos, backbox)) { //离开按钮是一致的,其余的记区分横竖屏 CGUI.style.display = "none" core.clearMap(ctx) core.restart(); + return } if (core.domStyle.isVertical) { //竖屏 - if (px >= 33 && px <= 177 && py >= 384 && py <= 520) { + const pageupbox = makeBox([33, 384], [144, 136]) + const pagedownbox = makeBox([33, 1080], [144, 190]) + const imagebox0 = makeBox([200, 300], [480, 320]) + if (inRect(pos, pageupbox)) { //2代表当前最大页数-1 - core.setLocalStorage("page", Math.min(2, core.getLocalStorage("page", 0) + 1)); - console.log(core.getLocalStorage("page")); - } else if (px >= 33 && px <= 177 && py >= 1080 && py <= 1270) { - core.setLocalStorage("page", Math.max(0, core.getLocalStorage("page", 2) - 1)); - console.log(core.getLocalStorage("page")); - } - } else { - if (px >= 33 && px <= 177 && py >= 342 && py <= 471) { - //2代表当前最大页数-1 - core.setLocalStorage("page", Math.min(2, core.getLocalStorage("page", 0) + 1)); - console.log(core.getLocalStorage("page")); - } else if (px >= 33 && px <= 177 && py >= 837 && py <= 975) { - core.setLocalStorage("page", Math.max(0, core.getLocalStorage("page", 2) - 1)); - console.log(core.getLocalStorage("page")); - } - for (let i = 0; i < 2; i++) { - for (let j = 0; j < 3; j++) { - //这里是绘图脚本,然而我并不会写,交给草莓了 - //drawImage(ctx, this.UIMx[core.getLocalStorage("page")][i * 3 - 3 + j], 480, 320, 300 + j * 500, 300 + i * 450); + if (page < 2) { + page++; + core.clearMap(ctx); + this.drawUI(); } + } else if (inRect(pos, pagedownbox)) { + if (page > 0) { + page--; + core.clearMap(ctx); + this.drawUI(); + } + } else if (inRect(pos, imagebox0)) { + const img = core.material.images.images[this.UIMx[page][0][0]] + ctx.save(); //保存设置 + ctx.translate(1248, 0) //重新定位右上角为基准 + ctx.rotate(Math.PI / 2) //旋转90度 + ctx.drawImage(img, 0, 0, 2028, 1248) + ctx.restore(); //重置画布设置 + show = !show; + } else { + const pageupbox = makeBox([33, 342], [144, 129]) + const pagedownbox = makeBox([33, 837], [144, 138]) + if (inRect(pos, pageupbox)) { + if (page < 2) { + page++; + core.clearMap(ctx); + this.drawUI(); + } + } else if (inRect(pos, pagedownbox)) { + if (page > 0) { + page++; + core.clearMap(ctx); + this.drawUI(); + } + } + } } } @@ -8856,11 +8896,12 @@ core.plugin.animate = { core.fillText(ctx, '向上翻页', 100, 450, '#FFFFFF', core.ui._buildFont(24, true)); core.fillText(ctx, '向下翻页', 100, 1150, '#FFFFFF', core.ui._buildFont(24, true)); - // 添加3*2个4:3的画框 + // 添加3*2个4:3的画框,及图片 for (let i = 0; i < 3; i++) { for (let j = 0; j < 2; j++) { - core.fillRect(ctx, 200 + j * 500, 300 + i * 450, 480, 320, '#FFFFFF'); - core.strokeRect(ctx, 200 + j * 500, 300 + i * 450, 480, 320, "#444444", 2); + const img = core.material.images.images[this.UIMx[page][j][i]] + core.strokeRect(ctx, 200 + j * 500, 300 + i * 450, 480, 320, "#444444", 5); + if (img) ctx.drawImage(img, 200 + j * 500 + 15, 300 + i * 450 + 15, 480 - 30, 320 - 30) } }