music部分

This commit is contained in:
草莓 2025-01-01 14:05:45 +08:00
parent 105a35c087
commit 97c5998a01
6 changed files with 1313 additions and 1326 deletions

View File

@ -1 +1 @@
N4IgZgNg9lBOCSATEAuEBnALrApjzADAIwgA0IAFjrFKqAJYC2AhgOY6qXVQB0ADgDtWZEMwFNmmDijDMI6HOQHNG0kAGFmTERABuqIuQp8WADwMFLRvhasgWysxfIPmqAuUkBrZyEQ4wX0Z/QJQiD3soARwAT3dyHFMbFAicAEcAV3oTHAFMVABtAF1yeilGdDoQAGMorDFMSpRQACMYHzDySDiwgF9yTBh5On6QdKy+JuBe0ehqqsR6XGrMeijODJtycxQAVnIe8NHINimQMpxGABF8LQhUbAzFEAyFACF8AHc8AQAZelYFHyKEezwA+mCFDhEBCDAAmYgANjhAE4AByItHkCGwMQwsHwpGojFY0S4ZhNAqgRxqAA6GQALDgCC16btqgy4SIWJNChotIwKFBVCAiv1qSo6YzmayMuzOdzmLyUAUQAAregZVgZMSi8UgGmcelMllsjlclxKykgADSABUAGp60gSkVoekAdjhyM9cLAJEtytV9odADEuWKXQbJUaMl6fXG/QH7Fa+awoBBEF5Ys7XVKTbL5RaU0GQC16BRXhlaJG87GTcwzQrA9aNcwoJgxMJa9G3SBjczG3LzYrS+gqEIBLohSKe4b3dKCEOi6PreP6FOZxw5zGF/G4b7/au+Rroe3c72pfvD8meWvsHhCMmsLh8ARi9qu9UKF2RJ+hN+XYRvq879omCZekeLZ8qY9DtrBXbEBeoG+hBSbHiqIAIVACFCO+eolBgXjZKgsjyM8P6wMgKTYmClGIOoGZwLCaC4MgtEXIwAASG6YCxxS0RAODMLoOC/FA1QsdMtG6PQ6AXPiVQvo+SEgrATyjC0Xw/AAgpgnbVF4VySG4KACBkEAQMcGbQN8sCUoRWA4MqhgppgHQROgfB4NR4TkC+vhsPQvi8b4tQCEEQXzDIcgKP5narFg9DVGcgydhAdpMNIiJekQPCktUGSwLAmVukQaIegyPCIpYtV1ZYDLWPEZaSJgQnNYwUQ5jRYxJM1LStUJxksOwzV8FAclRMNbDSKkpjYMw02jT1nWiVcSw4CsEA9BEAICHAOAAMpSMqnmdrAwI5XCeVojMRjMFRnAYdJIA0BkUicDaUDhuoDKsAAvCIuhyE8UyjKJ9lrBFC4ojgADMiBsi0uwEJ6zAoojGQou+qNymiuwMmaBBgPSKKIkQgTkNq9DUSAiItEyLSIB6aJgkQzAMswYIMmAHoomCaKIHDLRgrscO7HCAQMogiBgCiDIiKsZUeuLYsMvLcPy4ivRAA===
N4IgZgNg9lBOCSATEAuEBnALrApjzADAIwgA0IAFjrFKqAJYC2AhgOY6qXVQB0ADgDtWZEMwFNmmDijDMI6HOQHNG0kAGFmTERABuqIuQp8WADwMFLRvhasgWysxfIPmqAuUkBrZyEQ4wX0Z/QJQiD3soARwAT3dyHFMbFAicAEcAV3oTHAFMVABtAF1yeilGdDoQAGMorDFMSpRQACMYHzDySDiwgF9yTBh5On6QdKy+JtB0AHc4RBI+0ehqqsR6XGrMeijODJtycxQAVnIe8NHINimQMpxGABF8LQhUbAzFEAyFACF8GbwAgAMvRWBR8ih3p8APrQhQ4RCw1AAJgA7MiAMyWDEADlOIFhsDEiOhKPRWIIuPxzFwzCaBVAjjUAB0MgAWHAEFqs47VNnIkQsSaFDRaRgUKCqEBFfqMlQs9mc7kZXn8wXMYUoAogABW9AyrAyYmlspATM4rI5XJ5fIFLg19JAAGkACoANRNpDlUrQrPRADZkX7kWASPbNdrXW6AGICmVes3yi0ZANBlMhsP2B0i1hQCCILyxT3ehVW5Wqu1ZiMgFr0CjfDK0eMl5NW5g2tXhx165hQTBiYTNxM+kCWzntlW29XV9BUIQCXQSqVD82+xUECcV6eO2f0BdLjgrpNr1PB0PbkV6hG94vDhWn9PnrsirC4fDEESvvCESuGgfVCgBxEP8hAAgc41NVdR3TQMz0zIVHVMeheyQgcPyPEdg1gx94OzLUQFQqBUKEAgIJKDAvGyVBZHkT5ANgZAUnIWF6MQdQ8zgJE0FwZBmOhO5GAACT3TAuOKPiIBwZhdBwIEoGqLjgFGWFdHodA7hJKov3fRYoVGFp/kBABBTB+2qLwHkkNwUAEDIIAgPj1nQZgWkkzTmgwbBvw/LUCiIDFjhKYoZUuPNoABWB6XIrAcE1Qws0wDoInQPg8EY8JyFfXw2HoXwRN8WoBCCHLVhkOQFEy/ttiwehqhuQZ+wgF0mGkY4iHanEMQATn9HhLAILrkWRIg2XIaoMlgWBmp9Ea2S6nh8WMeIa0kTBJOWxgoiLJixiSZaWlWyTLJYdhlr4KA1KiY62GkVJTGwZhrtOnbNpkh4NhwLYIB6CJQQEOAcAAZSkTVkv7WAIVRUj5uOXpRlYzgLw87TCEWUAhUKDwsdIbHcZx/GCgAWkMYnSFJ8nDA8CmyZJ2maZpkosZC8gaAyKROCdKBY3UNlWAAXhEXQ5A+KZRhkyKdiKtcupwDFEB5FpjgIP1mC6+WMi60jlZVPE2RtAgwFZHqiECchDXoRiQH9FoORaRBURxaEiGYNlmGhNkwFRLroRxRAMRaaFjgC5EAjZRBEDALq2REbYZtRALUXCcJ/QxDFUV6IA

View File

@ -1 +1 @@
{"viewportLoc":[0,0],"editorLastFloorId":"street01"}
{"viewportLoc":[0,0],"editorLastFloorId":"street01","lastUsed":[{"idnum":43,"id":"sword5","images":"items","y":54,"recent":1735710095206,"frequent":1},{"idnum":41,"id":"sword4","images":"items","y":53,"recent":1735710093206,"frequent":1},{"idnum":39,"id":"sword3","images":"items","y":52,"recent":1735710091127,"frequent":1},{"idnum":37,"id":"sword2","images":"items","y":51,"recent":1735710088598,"frequent":1},{"idnum":35,"id":"sword1","images":"items","y":50,"recent":1735710086310,"frequent":1},{"idnum":36,"id":"shield1","images":"items","y":55,"recent":1735710097750,"frequent":1}]}

View File

@ -116,6 +116,12 @@ var plugins_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_type": "textarea",
"_range": "typeof(thiseval)=='string' || thiseval==null",
"_data": "警告消息"
},
"musicMode": {
"_leaf": true,
"_type": "textarea",
"_range": "typeof(thiseval)=='string' || thiseval==null",
"_data": "音乐鉴赏"
}
}
if (obj[key]) return obj[key];

View File

@ -1,205 +1,226 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' content='text/html' charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=Edge, chrome=1'>
<meta name='author' content='ckcz123'>
<meta name='viewport'
content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=yes'>
<head>
<meta http-equiv="content-type" content="text/html" charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge, chrome=1" />
<meta name="author" content="ckcz123" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=yes"
/>
<title>HTML5魔塔</title>
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="screen-orientation" content="portrait">
<meta name="full-screen" content="yes">
<meta name="browsermode" content="application">
<meta name="x5-orientation" content="portrait">
<meta name="x5-fullscreen" content="true">
<meta name="x5-page-mode" content="app">
<link type='text/css' href='styles.css' rel='stylesheet'>
</head>
<meta
name="apple-mobile-web-app-status-bar-style"
content="black-translucent"
/>
<meta name="screen-orientation" content="portrait" />
<meta name="full-screen" content="yes" />
<meta name="browsermode" content="application" />
<meta name="x5-orientation" content="portrait" />
<meta name="x5-fullscreen" content="true" />
<meta name="x5-page-mode" content="app" />
<link type="text/css" href="styles.css" rel="stylesheet" />
</head>
<body>
<div id='startImageBackgroundDiv'>
<div id='startImageDiv'></div>
<img id='startImageLogo' />
<body>
<div id="startImageBackgroundDiv">
<div id="startImageDiv"></div>
<img id="startImageLogo" />
</div>
<script>
(function () {
var startImageBackgroundDiv = document.getElementById('startImageBackgroundDiv');
var startImageLogo = document.getElementById('startImageLogo');
var startImageDiv = document.getElementById('startImageDiv');
startImageLogo.onload = function () {
startImageBackgroundDiv.style.display = 'block';
var onAnimationEnd = function () {
startImageBackgroundDiv.style.display = 'none';
startImageLogo.classList.remove("startImageAnimation");
startImageDiv.classList.remove("startImageDivAnimation");
}
startImageDiv.addEventListener("webkitAnimationEnd", onAnimationEnd);
startImageDiv.addEventListener("animationend", onAnimationEnd);
startImageLogo.classList.add("startImageAnimation");
startImageDiv.classList.add("startImageDivAnimation");
// 注释下面这句话以禁止单击立刻跳过开场动画
startImageBackgroundDiv.onclick = onAnimationEnd;
}
startImageLogo.onerror = function () { }
startImageLogo.src = "logo.png";
})();
(function () {
var startImageBackgroundDiv = document.getElementById(
"startImageBackgroundDiv"
);
var startImageLogo = document.getElementById("startImageLogo");
var startImageDiv = document.getElementById("startImageDiv");
startImageLogo.onload = function () {
startImageBackgroundDiv.style.display = "block";
var onAnimationEnd = function () {
startImageBackgroundDiv.style.display = "none";
startImageLogo.classList.remove("startImageAnimation");
startImageDiv.classList.remove("startImageDivAnimation");
};
startImageDiv.addEventListener("webkitAnimationEnd", onAnimationEnd);
startImageDiv.addEventListener("animationend", onAnimationEnd);
startImageLogo.classList.add("startImageAnimation");
startImageDiv.classList.add("startImageDivAnimation");
// 注释下面这句话以禁止单击立刻跳过开场动画
startImageBackgroundDiv.onclick = onAnimationEnd;
};
startImageLogo.onerror = function () {};
startImageLogo.src = "logo.png";
})();
</script>
<!-- injection -->
<div id='gameGroup'>
<p id='mainTips'>请稍候...</p>
<img id='musicBtn'>
<div id='startPanel'>
<div id='startTop'>
<div id='startTopProgressBar'>
<div id='startTopProgress'></div>
</div>
<p id='startTopLoadTips'>资源即将开始加载</p>
<p id='startTopHint'>HTML5魔塔游戏平台享受更多魔塔游戏<br />https://h5mota.com/</p>
</div>
<img id='startBackground'>
<p id='startLogo'></p>
<div id='startButtonGroup'>
<div id='startButtons'>
<span class='startButton' id='playGame'>START GAME</span>
<span class='startButton' id='loadGame'>LOAD GAME</span>
<span class='startButton' id='CGMode'>CG MODE</span>
<span class='startButton' id='replayGame'>REPLAY MODE</span>
</div>
<div id='levelChooseButtons'></div>
</div>
<div id="gameGroup">
<p id="mainTips">请稍候...</p>
<img id="musicBtn" />
<div id="startPanel">
<div id="startTop">
<div id="startTopProgressBar">
<div id="startTopProgress"></div>
</div>
<p id="startTopLoadTips">资源即将开始加载</p>
<p id="startTopHint">
HTML5魔塔游戏平台享受更多魔塔游戏<br />https://h5mota.com/
</p>
</div>
<div id='floorMsgGroup'>
<p id='logoLabel'></p>
<p id='versionLabel'></p>
<p id='floorNameLabel'></p>
<img id="startBackground" />
<p id="startLogo"></p>
<div id="startButtonGroup">
<div id="startButtons">
<span class="startButton" id="playGame">START GAME</span>
<span class="startButton" id="loadGame">LOAD GAME</span>
<span class="startButton" id="CGMode">CG MODE</span>
<span class="startButton" id="musicMode">MUSIC MODE</span>
<span class="startButton" id="replayGame">REPLAY MODE</span>
</div>
<div id="levelChooseButtons"></div>
</div>
</div>
<div id="floorMsgGroup">
<p id="logoLabel"></p>
<p id="versionLabel"></p>
<p id="floorNameLabel"></p>
</div>
<div id="statusBar" class="clearfix">
<div class="status" id="floorCol">
<img id="img-floor" />
<p class="statusLabel statusText" id="floor"></p>
</div>
<div class="status" id="nameCol">
<img id="img-name" />
<p class="statusLabel statusText" id="name"></p>
</div>
<div class="status" id="lvCol">
<img id="img-lv" />
<p class="statusLabel statusText" id="lv"></p>
</div>
<div class="status" id="hpmaxCol">
<img id="img-hpmax" />
<p class="statusLabel statusText" id="hpmax"></p>
</div>
<div class="status" id="hpCol">
<img id="img-hp" />
<p class="statusLabel statusText" id="hp"></p>
</div>
<div class="status" id="manaCol">
<img id="img-mana" />
<p class="statusLabel statusText" id="mana"></p>
</div>
<div class="status" id="atkCol">
<img id="img-atk" />
<p class="statusLabel statusText" id="atk"></p>
</div>
<div class="status" id="defCol">
<img id="img-def" />
<p class="statusLabel statusText" id="def"></p>
</div>
<div class="status" id="mdefCol">
<img id="img-mdef" />
<p class="statusLabel statusText" id="mdef"></p>
</div>
<div class="status" id="moneyCol">
<img id="img-money" />
<p class="statusLabel statusText" id="money"></p>
</div>
<div class="status" id="expCol">
<img id="img-exp" />
<p class="statusLabel statusText" id="exp"></p>
</div>
<div class="status" id="upCol">
<img id="img-up" />
<p class="statusLabel statusText" id="up"></p>
</div>
<div class="status" id="skillCol">
<img id="img-skill" />
<p
class="statusLabel statusText"
id="skill"
style="font-style: normal"
></p>
</div>
<div class="status" id="keyCol">
<span
class="statusLabel"
id="yellowKey"
style="color: #ffccaa"
></span>
<span class="statusLabel" id="blueKey" style="color: #aaaadd"></span>
<span class="statusLabel" id="redKey" style="color: #ff8888"></span>
<span class="statusLabel" id="greenKey" style="color: #88ff88"></span>
</div>
<div class="status" id="pzfCol">
<span class="statusLabel" id="pickaxe" style="color: #bc6e27"></span>
<span class="statusLabel" id="bomb" style="color: #fa14b9"></span>
<span class="statusLabel" id="fly" style="color: #8db600"></span>
</div>
<div class="status" id="debuffCol">
<span class="statusLabel" id="poison" style="color: #affca8"></span>
<span class="statusLabel" id="weak" style="color: #feccd0"></span>
<span class="statusLabel" id="curse" style="color: #c2f4e7"></span>
</div>
<div id='statusBar' class="clearfix">
<div class="status" id="floorCol">
<img id="img-floor">
<p class='statusLabel statusText' id='floor'></p>
</div>
<div class="status" id="nameCol">
<img id="img-name">
<p class='statusLabel statusText' id='name'></p>
</div>
<div class="status" id="lvCol">
<img id="img-lv">
<p class='statusLabel statusText' id='lv'></p>
</div>
<div class="status" id='hpmaxCol'>
<img id="img-hpmax">
<p class='statusLabel statusText' id='hpmax'></p>
</div>
<div class="status" id='hpCol'>
<img id="img-hp">
<p class='statusLabel statusText' id='hp'></p>
</div>
<div class="status" id='manaCol'>
<img id="img-mana">
<p class='statusLabel statusText' id='mana'></p>
</div>
<div class="status" id='atkCol'>
<img id="img-atk">
<p class='statusLabel statusText' id='atk'></p>
</div>
<div class="status" id='defCol'>
<img id="img-def">
<p class='statusLabel statusText' id='def'></p>
</div>
<div class="status" id="mdefCol">
<img id="img-mdef">
<p class='statusLabel statusText' id='mdef'></p>
</div>
<div class="status" id="moneyCol">
<img id="img-money">
<p class='statusLabel statusText' id='money'></p>
</div>
<div class="status" id="expCol">
<img id="img-exp">
<p class='statusLabel statusText' id='exp'></p>
</div>
<div class="status" id="upCol">
<img id="img-up">
<p class='statusLabel statusText' id='up'></p>
</div>
<div class="status" id="skillCol">
<img id="img-skill">
<p class='statusLabel statusText' id='skill' style='font-style: normal'></p>
</div>
<div class="status" id='keyCol'>
<span class='statusLabel' id='yellowKey' style="color:#FFCCAA"></span>
<span class='statusLabel' id='blueKey' style="color:#AAAADD"></span>
<span class='statusLabel' id='redKey' style="color:#FF8888"></span>
<span class='statusLabel' id='greenKey' style="color:#88FF88"></span>
</div>
<div class="status" id='pzfCol'>
<span class='statusLabel' id='pickaxe' style="color: #BC6E27"></span>
<span class='statusLabel' id='bomb' style="color: #FA14B9"></span>
<span class='statusLabel' id='fly' style="color: #8DB600"></span>
</div>
<div class="status" id="debuffCol">
<span class='statusLabel' id='poison' style="color: #AFFCA8;"></span>
<span class='statusLabel' id='weak' style="color: #FECCD0;"></span>
<span class='statusLabel' id='curse' style="color: #C2F4E7;"></span>
</div>
<!-- 状态栏canvas化 -->
<canvas id="statusCanvas" style="position: absolute; left: 0; top: 0;"></canvas>
</div>
<div id="toolBar" class="clearfix">
<img class="tools" id='img-book'>
<img class="tools" id='img-fly'>
<img class="tools" id='img-toolbox'>
<img class="tools" id='img-keyboard'>
<img class="tools" id='img-shop'>
<img class="tools" id='img-save'>
<img class="tools" id='img-load'>
<img class="tools" id='img-settings'>
<img class="tools" id='img-btn1' style='display:none'>
<img class="tools" id='img-btn2' style='display:none'>
<img class="tools" id='img-btn3' style='display:none'>
<img class="tools" id='img-btn4' style='display:none'>
<img class="tools" id='img-btn5' style='display:none'>
<img class="tools" id='img-btn6' style='display:none'>
<img class="tools" id='img-btn7' style='display:none'>
<img class="tools" id='img-btn8' style='display:none'>
<p class="statusLabel tools" id="hard"></p>
</div>
<div id="gameDraw">
<div id="gif"></div>
<div id="gif2"></div>
<canvas class='gameCanvas anti-aliasing' id='bg'></canvas>
<canvas class='gameCanvas anti-aliasing' id='event'></canvas>
<canvas class='gameCanvas anti-aliasing' id='hero'></canvas>
<canvas class='gameCanvas anti-aliasing' id='event2'></canvas>
<canvas class='gameCanvas anti-aliasing' id='fg'></canvas>
<canvas class='gameCanvas' id='damage'></canvas>
<canvas class='gameCanvas' id='animate'></canvas>
<canvas class='gameCanvas' id='curtain'></canvas>
<canvas class='gameCanvas' id='ui'></canvas>
<canvas class='gameCanvas' id='data'>此浏览器不支持HTML5</canvas>
<div id="next"></div>
</div>
<!-- 状态栏canvas化 -->
<canvas
id="statusCanvas"
style="position: absolute; left: 0; top: 0"
></canvas>
</div>
<div id="toolBar" class="clearfix">
<img class="tools" id="img-book" />
<img class="tools" id="img-fly" />
<img class="tools" id="img-toolbox" />
<img class="tools" id="img-keyboard" />
<img class="tools" id="img-shop" />
<img class="tools" id="img-save" />
<img class="tools" id="img-load" />
<img class="tools" id="img-settings" />
<img class="tools" id="img-btn1" style="display: none" />
<img class="tools" id="img-btn2" style="display: none" />
<img class="tools" id="img-btn3" style="display: none" />
<img class="tools" id="img-btn4" style="display: none" />
<img class="tools" id="img-btn5" style="display: none" />
<img class="tools" id="img-btn6" style="display: none" />
<img class="tools" id="img-btn7" style="display: none" />
<img class="tools" id="img-btn8" style="display: none" />
<p class="statusLabel tools" id="hard"></p>
</div>
<div id="gameDraw">
<div id="gif"></div>
<div id="gif2"></div>
<canvas class="gameCanvas anti-aliasing" id="bg"></canvas>
<canvas class="gameCanvas anti-aliasing" id="event"></canvas>
<canvas class="gameCanvas anti-aliasing" id="hero"></canvas>
<canvas class="gameCanvas anti-aliasing" id="event2"></canvas>
<canvas class="gameCanvas anti-aliasing" id="fg"></canvas>
<canvas class="gameCanvas" id="damage"></canvas>
<canvas class="gameCanvas" id="animate"></canvas>
<canvas class="gameCanvas" id="curtain"></canvas>
<canvas class="gameCanvas" id="ui"></canvas>
<canvas class="gameCanvas" id="data">此浏览器不支持HTML5</canvas>
<div id="next"></div>
</div>
</div>
<div id='inputDiv'>
<div id='inputDialog'>
<p id="inputMessage">请输入文字...</p>
<input id='inputBox' type="text" autocomplete="off" />
<button id='inputYes'>确定</button>
<button id='inputNo'>取消</button>
</div>
<div id="inputDiv">
<div id="inputDialog">
<p id="inputMessage">请输入文字...</p>
<input id="inputBox" type="text" autocomplete="off" />
<button id="inputYes">确定</button>
<button id="inputNo">取消</button>
</div>
</div>
<div id="ui-editor"></div>
<!-- injection -->
<script src='libs/thirdparty/lz-string.min.js'></script>
<script src='libs/thirdparty/priority-queue.min.js'></script>
<script src='libs/thirdparty/localforage.min.js'></script>
<script src='libs/thirdparty/zip.min.js'></script>
<script id='mainScript' src='main.js'></script>
<script>main.init('play'); main.listen();</script>
</body>
</html>
<script src="libs/thirdparty/lz-string.min.js"></script>
<script src="libs/thirdparty/priority-queue.min.js"></script>
<script src="libs/thirdparty/localforage.min.js"></script>
<script src="libs/thirdparty/zip.min.js"></script>
<script id="mainScript" src="main.js"></script>
<script>
main.init("play");
main.listen();
</script>
</body>
</html>

1781
main.js

File diff suppressed because it is too large Load Diff

View File

@ -2569,6 +2569,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
core.dom.playGame.style.fontSize = font + "px";
core.dom.loadGame.style.fontSize = font + "px";
core.dom.CGMode.style.fontSize = font + "px";
core.dom.musicMode.style.fontSize = font + "px";
core.dom.replayGame.style.fontSize = font + "px";
core.dom.startButtonGroup.style.padding = font * 0.3 + "px 25px";
};
@ -2582,6 +2583,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
main.dom.CGUI.style.width = obj.totalWidth + 3 + "px";
main.dom.CGUI.style.height = obj.totalHeight + 3 + "px";
}
if (main.dom.music) {
main.dom.music.style.width = obj.totalWidth + 3 + "px";
main.dom.music.style.height = obj.totalHeight + 3 + "px";
}
if (main.dom.cgText) {
main.dom.cgText.style.width = obj.totalWidth + 3 + "px";
main.dom.cgText.style.height = obj.totalHeight + 3 + "px";
@ -2764,8 +2769,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
if (core.status.automaticRoute == null) core.status.automaticRoute = {};
core.updateStatusBar();
if (main.dom.CGUI) core.ui.CG.update();
if (main.dom.cgText) core.ui.cgText.update();
if (main.dom.CGUI && main.dom.CGUI.style.display === "block") core.ui.CG.update();
if (main.dom.music && main.dom.music.style.display === "block") core.ui.music.update()
if (main.dom.cgText && main.dom.cgText.style.display === "block") core.ui.cgText.update();
};
class StatusBar {
@ -11752,176 +11758,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
}
};
function drawImage(
name,
image,
x,
y,
w,
h,
x1,
y1,
w1,
h1,
angle,
reverse
) {
// 检测文件名以 :x, :y, :o 结尾,表示左右翻转,上下翻转和中心翻转
image = core.material.images.images[image];
var scale = {
x: [-1, 1],
y: [1, -1],
o: [-1, -1],
};
// 只能接受2, 4, 8个参数
if (x != null && y != null) {
if (w == null || h == null) {
// 两个参数变成四个参数
w = image.width;
h = image.height;
}
if (x1 != null && y1 != null && w1 != null && h1 != null) {
if (!reverse && !angle) {
name.drawImage(image, x, y, w, h, x1, y1, w1, h1);
} else {
name.save();
name.translate(x1 + w1 / 2, y1 + h1 / 2);
if (reverse) name.scale(scale[reverse][0], scale[reverse][1]);
if (angle) name.rotate(angle);
name.drawImage(image, x, y, w, h, -w1 / 2, -h1 / 2, w1, h1);
name.restore();
}
return;
}
if (!reverse && !angle) {
name.drawImage(image, x, y, w, h);
} else {
name.save();
name.translate(x + w / 2, y + h / 2);
if (reverse) name.scale(scale[reverse][0], scale[reverse][1]);
if (angle) name.rotate(angle);
name.drawImage(image, -w / 2, -h / 2, w, h);
name.restore();
}
return;
}
}
function drawWindow(background, ctx, x, y, w, h, direction, px, py) {
// 仿RM窗口皮肤 ↓
drawImage(ctx, background, 0, 0, 128, 128, x + 2, y + 2, w - 4, h - 4);
// 绘制边框
// 上方
drawImage(ctx, background, 128, 0, 16, 16, x, y, 16, 16);
for (var dx = 0; dx < w - 64; dx += 32) {
drawImage(ctx, background, 144, 0, 32, 16, x + dx + 16, y, 32, 16);
drawImage(
ctx,
background,
144,
48,
32,
16,
x + dx + 16,
y + h - 16,
32,
16
);
}
drawImage(
ctx,
background,
144,
0,
w - dx - 32,
16,
x + dx + 16,
y,
w - dx - 32,
16
);
drawImage(
ctx,
background,
144,
48,
w - dx - 32,
16,
x + dx + 16,
y + h - 16,
w - dx - 32,
16
);
drawImage(ctx, background, 176, 0, 16, 16, x + w - 16, y, 16, 16);
// 左右
for (var dy = 0; dy < h - 64; dy += 32) {
drawImage(ctx, background, 128, 16, 16, 32, x, y + dy + 16, 16, 32);
drawImage(
ctx,
background,
176,
16,
16,
32,
x + w - 16,
y + dy + 16,
16,
32
);
}
drawImage(
ctx,
background,
128,
16,
16,
h - dy - 32,
x,
y + dy + 16,
16,
h - dy - 32
);
drawImage(
ctx,
background,
176,
16,
16,
h - dy - 32,
x + w - 16,
y + dy + 16,
16,
h - dy - 32
);
// 下方
drawImage(ctx, background, 128, 48, 16, 16, x, y + h - 16, 16, 16);
drawImage(
ctx,
background,
176,
48,
16,
16,
x + w - 16,
y + h - 16,
16,
16
);
// arrow
if (px != null && py != null) {
if (direction == "up") {
drawImage(ctx, background, 128, 96, 32, 32, px, y + h - 3, 32, 32);
} else if (direction == "down") {
drawImage(ctx, background, 160, 96, 32, 32, px, y - 29, 32, 32);
}
}
// 仿RM窗口皮肤 ↑
}
class CG {
constructor() {
//cg列表
@ -11974,16 +11811,13 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
background() {
//画布大小设置
if (core.domStyle.isVertical) {
ctx.canvas.width = 1248;
ctx.canvas.height = 2028;
core.setTextAlign(ctx, "center");
CGUI.width = 1248;
CGUI.height = 2028;
} else {
ctx.canvas.width = 2028;
ctx.canvas.height = 1248;
core.setTextAlign(ctx, "center");
CGUI.width = 2028;
CGUI.height = 1248;
}
core.setTextAlign(ctx, "center");
}
onclick(px, py) {
//点击
@ -11993,7 +11827,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
this.update();
return;
}
console.log([px, py]);
const makeBox = ([x, y], [w, h]) => {
return [
[x, y],
@ -12007,7 +11840,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
return sx <= x && x <= dx && sy <= y && y <= dy;
};
const pos = [px, py];
const backbox = makeBox([33, 33], [144, 144]);
const backbox = makeBox([45, 45], [120, 80]);
if (inRect(pos, backbox)) {
//离开按钮是一致的,其余的记区分横竖屏
CGUI.style.display = "none";
@ -12126,55 +11959,37 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
} else if (inRect(pos, imagebox0)) {
const img = core.material.images.images[this.UIMx[page][0][0]];
if (img) {
ctx.save(); //保存设置
ctx.translate(0, 0); //重新定位右上角为基准
ctx.drawImage(img, 0, 0, 2028, 1248);
ctx.restore(); //重置画布设置
show = !show;
}
} else if (inRect(pos, imagebox1)) {
const img = core.material.images.images[this.UIMx[page][0][1]];
if (img) {
ctx.save(); //保存设置
ctx.translate(0, 0); //重新定位右上角为基准
ctx.drawImage(img, 0, 0, 2028, 1248);
ctx.restore(); //重置画布设置
show = !show;
}
} else if (inRect(pos, imagebox2)) {
const img = core.material.images.images[this.UIMx[page][0][2]];
if (img) {
ctx.save(); //保存设置
ctx.translate(0, 0); //重新定位右上角为基准
ctx.drawImage(img, 0, 0, 2028, 1248);
ctx.restore(); //重置画布设置
show = !show;
}
} else if (inRect(pos, imagebox3)) {
const img = core.material.images.images[this.UIMx[page][1][0]];
if (img) {
ctx.save(); //保存设置
ctx.translate(0, 0); //重新定位右上角为基准
ctx.drawImage(img, 0, 0, 2028, 1248);
ctx.restore(); //重置画布设置
show = !show;
}
} else if (inRect(pos, imagebox4)) {
const img = core.material.images.images[this.UIMx[page][1][1]];
if (img) {
ctx.save(); //保存设置
ctx.translate(0, 0); //重新定位右上角为基准
ctx.drawImage(img, 0, 0, 2028, 1248);
ctx.restore(); //重置画布设置
show = !show;
}
} else if (inRect(pos, imagebox5)) {
const img = core.material.images.images[this.UIMx[page][1][2]];
if (img) {
ctx.save(); //保存设置
ctx.translate(0, 0); //重新定位右上角为基准
ctx.drawImage(img, 0, 0, 2028, 1248);
ctx.restore(); //重置画布设置
show = !show;
}
}
@ -12183,13 +11998,14 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
drawUI() {
//绘制页面
core.clearMap(CGUI);
if (!core?.material?.images?.images?.["winskin1.png"]) return;
const bgVertical = core.material.images.images["bg_2010.png"] //竖屏背景
const bg = core.material.images.images["bg_5043.png"] //横屏背景
if (core.domStyle.isVertical) {
//竖屏
//core.drawWindowSkin('winskin1.png', ctx, 0, 0, 1248, 2028);
core.fillRect(ctx, 0, 0, 1248, 2028, "#000000"); //黑色背景
ctx.globalAlpha = 0.5; //透明度
drawImage(ctx, "bg_2010.png", 0, 0, 1280, 1500, 0, 0, 1248, 2028); //绘制半透明背景图片
if (bgVertical) ctx.drawImage(bgVertical, 0, 0, 1280, 1500, 0, 0, 1248, 2028); //绘制半透明背景图片
ctx.globalAlpha = 1; //恢复为不透明
core.setTextAlign(ctx, "center");
@ -12214,9 +12030,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
);
core.fillBoldText1(
ctx,
"离开",
100,
"<离开",
110,
100,
"#FFFFFF",
"#000000",
6,
@ -12237,7 +12053,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
45 - 12,
400 - 12,
120 + 24,
120 + 12,
120 + 24,
12,
"#444444",
3
@ -12256,7 +12072,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
45 - 12,
1100 - 12,
120 + 24,
120 + 12,
120 + 24,
12,
"#444444",
3
@ -12306,20 +12122,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
}
}
// 添加浏览模式和CG模式的字样
/*
core.fillRoundRect(ctx, 350 - 6, 120 - 6, 120 + 12, 120 + 12, 6, '#444444');
core.strokeRoundRect(ctx, 350 - 12, 120 - 12, 120 + 24, 120 + 12, 12, "#444444", 3);
core.fillRoundRect(ctx, 950 - 6, 120 - 6, 120 + 12, 120 + 12, 6, '#444444');
core.strokeRoundRect(ctx, 950 - 12, 120 - 12, 120 + 24, 120 + 12, 12, "#444444", 3);
core.fillText(ctx, '浏览模式', 400, 180, '#FFFFFF', core.ui._buildFont(24, true));
core.fillText(ctx, 'CG模式', 1000, 180, '#FFFFFF', core.ui._buildFont(24, true));
*/
} else {
//横屏
core.fillRect(ctx, 0, 0, 2028, 1248, "#000000"); //黑色背景
ctx.globalAlpha = 0.5; //透明度
drawImage(ctx, "bg_5043.png", 0, 0, 1280, 720, 0, 0, 2028, 1248); //绘制半透明背景图片
if (bg) ctx.drawImage(bg, 0, 0, 1280, 720, 0, 0, 2028, 1248); //绘制半透明背景图片
ctx.globalAlpha = 1; //恢复为不透明
//core.drawWindowSkin('winskin1.png', ctx, 0, 0, 2028, 1248);
core.setTextAlign(ctx, "center");
@ -12328,7 +12136,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
45 - 6,
45 - 6,
120 + 12,
120 + 12,
80 + 12,
6,
"#444444"
);
@ -12337,16 +12145,16 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
45 - 12,
45 - 12,
120 + 24,
120 + 24,
80 + 24,
12,
"#444444",
3
);
core.fillBoldText1(
ctx,
"离开",
100,
"<离开",
110,
100,
"#FFFFFF",
"#000000",
6,
@ -12437,15 +12245,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
}
}
// 添加浏览模式和CG模式的字样
/*
core.fillRoundRect(ctx, 550 - 6, 45 - 6, 120 + 12, 120 + 12, 6, '#444444');
core.strokeRoundRect(ctx, 550 - 12, 45 - 12, 120 + 24, 120 + 24, 12, "#444444", 3);
core.fillText(ctx, '浏览模式', 600, 100, '#FFFFFF', core.ui._buildFont(24, true));
core.fillRoundRect(ctx, 1150 - 6, 45 - 6, 120 + 12, 120 + 12, 6, '#444444');
core.strokeRoundRect(ctx, 1150 - 12, 45 - 12, 120 + 24, 120 + 24, 12, "#444444", 3);
core.fillText(ctx, 'CG模式', 1200, 100, '#FFFFFF', core.ui._buildFont(24, true))
*/
}
}
}
@ -14277,5 +14077,194 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
}
})
}
},
"musicMode": function () {
// 在此增加新插件
const music = document.createElement("canvas"); //CGui画布设置
music.style.position = "absolute";
music.style.zIndex = 300;
music.style.display = "none";
music.id = "music";
main.dom.gameGroup.insertAdjacentElement("afterend", music);
music.style.top = "50%";
music.style.left = "50%";
music.style.transform = "translate(-50%,-50%)";
const ctx = music.getContext("2d");
main.dom.music = music;
let page = 0; //初始页面
let show = false; //展示状态
music.onclick = function (e) {
try {
e.preventDefault();
if (core.isPlaying()) return false;
const left = core.dom.gameGroup.offsetLeft;
const top = core.dom.gameGroup.offsetTop;
const px = Math.floor((e.clientX - left) / core.domStyle.scale),
py = Math.floor((e.clientY - top) / core.domStyle.scale);
core.ui.music.onclick(px * 3, py * 3);
} catch (ee) {
main.log(ee);
}
};
class musicclass {
constructor() {
//music列表
//需全塔属性注册并保存在bgms文件夹,每个数组为显示的一页内容
this.musicMx = [
["Asphodelus_Ceui.mp3", 'Blind_Alley.mp3'],
['Crawler.mp3', 'op.mp3', 'theme.mp3']
];
//音乐别名将在播放器内显示的音乐名music列表内的都要有对应歌名
this.musicname = {
"Asphodelus_Ceui.mp3": 'Asphodelus',
'Blind_Alley.mp3': 'Blind',
'Crawler.mp3': 'Crawler',
'op.mp3': 'op',
'theme.mp3': 'theme'
}
}
//更新
update() {
this.background();
this.drawUI();
}
background() {
//画布大小设置
if (core.domStyle.isVertical) {
music.width = 1248;
music.height = 2028;
} else {
music.width = 2028;
music.height = 1248;
}
}
onclick(px, py) {
//点击
if (show) {
show = !show;
core.clearMap(ctx);
this.update();
return;
}
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([45, 45], [120, 80]);
if (inRect(pos, backbox)) {
//离开按钮是一致的,其余的记区分横竖屏
music.style.display = "none";
core.clearMap(ctx);
core.restart();
return;
}
}
drawUI() {
//绘制页面
core.clearMap(music);
const bgVertical = core.material.images.images["bg_2010.png"] //竖屏背景
const bg = core.material.images.images["bg_5043.png"] //竖屏背景
if (core.domStyle.isVertical) {
//竖屏
core.fillRect(ctx, 0, 0, 1248, 2028, "#000000"); //黑色背景
ctx.globalAlpha = 0.5; //透明度
if (bgVertical) ctx.drawImage(bgVertical, 0, 0, 1280, 1500, 0, 0, 1248, 2028); //绘制半透明背景图片
ctx.globalAlpha = 1; //恢复为不透明
core.setTextAlign(ctx, "center");
core.fillRoundRect(
ctx,
45 - 6,
45 - 6,
120 + 12,
80 + 12,
6,
"#444444"
);
core.strokeRoundRect(
ctx,
45 - 12,
45 - 12,
120 + 24,
80 + 24,
12,
"#444444",
3
);
core.fillBoldText1(
ctx,
"<离开",
110,
100,
"#FFFFFF",
"#000000",
6,
core.ui._buildFont(33, true)
);
} else {
//横屏
core.fillRect(ctx, 0, 0, 2028, 1248, "#000000"); //黑色背景
ctx.globalAlpha = 0.5; //透明度
if (bg) ctx.drawImage(bg, 0, 0, 1280, 720, 0, 0, 2028, 1248); //绘制半透明背景图片
ctx.globalAlpha = 1; //恢复为不透明
core.setTextAlign(ctx, "center");
core.fillRoundRect(
ctx,
45 - 6,
45 - 6,
120 + 12,
80 + 12,
6,
"#444444"
);
core.strokeRoundRect(
ctx,
45 - 12,
45 - 12,
120 + 24,
80 + 24,
12,
"#444444",
3
);
core.fillBoldText1(
ctx,
"<离开",
110,
100,
"#FFFFFF",
"#000000",
6,
core.ui._buildFont(33, true)
);
}
}
}
core.ui.music = new musicclass();
main.dom.musicMode.onclick = function () {
//点击开始页面的CG MODE进入cg回廊
main.core.control.checkBgm();
page = 0;
music.style.display = "block";
main.core.ui.music.update();
};
}
}