diff --git a/README.md b/README.md index 31bfb098..747f4e31 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏! * [x] 全GUI造塔,现在用户无需打开任何文件直接编辑JS代码了。 * [x] 整体改变目录架构,将数据和逻辑进行分离 * [x] 支持48x32的怪物和NPC素材 +* [x] 支持插件编写,用户可以根据需求来写插件了 * [x] 加点改成系统开关进行处理,怪物手册会列出加点值 * [x] 支持带有血量上限的塔 * [x] 增加前景图片绘制 diff --git a/libs/core.js b/libs/core.js index e9ad0fe6..3c822481 100644 --- a/libs/core.js +++ b/libs/core.js @@ -273,6 +273,7 @@ core.prototype.init = function (coreData, callback) { core.material.ground = new Image(); core.material.ground.src = "project/images/ground.png"; + core.loader.load(function () { console.log(core.material); // 设置勇士高度 @@ -280,6 +281,9 @@ core.prototype.init = function (coreData, callback) { core.setRequestAnimationFrame(); core.showStartAnimate(); + if (core.isset(functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a.plugins)) + core.plugin = new functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a.plugins.plugin(); + if (core.isset(callback)) callback(); }); diff --git a/project/functions.comment.js b/project/functions.comment.js index 8093f009..1c704822 100644 --- a/project/functions.comment.js +++ b/project/functions.comment.js @@ -17,5 +17,8 @@ functions_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = }, "ui" : { "drawAbout" : "绘制“关于”界面" + }, + "plugins": { + "plugin": "自定义插件编写" } } \ No newline at end of file diff --git a/project/functions.js b/project/functions.js index ee0b7a21..3acade9a 100644 --- a/project/functions.js +++ b/project/functions.js @@ -262,40 +262,58 @@ functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = ////// 读档事件后,载入事件前,可以执行的操作 ////// "afterLoadData" : function(data) { // 读档事件后,载入事件前,可以执行的操作 + // 可以在这里对怪物数据进行动态修改,详见文档——事件——怪物数据的动态修改 + } - - }, "ui":{ ////// 绘制“关于”界面 ////// "drawAbout" : function() { // 绘制“关于”界面 - - if (!core.isPlaying()) { - core.status.event = {'id': null, 'data': null}; - core.dom.startPanel.style.display = 'none'; - } - core.lockControl(); - core.status.event.id = 'about'; - - core.clearMap('ui', 0, 0, 416, 416); - var left = 48, top = 36, right = 416 - 2 * left, bottom = 416 - 2 * top; - - core.setAlpha('ui', 0.85); - core.fillRect('ui', left, top, right, bottom, '#000000'); - core.setAlpha('ui', 1); - core.strokeRect('ui', left - 1, top - 1, right + 1, bottom + 1, '#FFFFFF', 2); - - var text_start = left + 24; - - // 名称 - core.canvas.ui.textAlign = "left"; - core.fillText('ui', "HTML5 魔塔样板", text_start, top+35, "#FFD700", "bold 22px Verdana"); - core.fillText('ui', "版本: "+core.firstData.version, text_start, top + 80, "#FFFFFF", "bold 17px Verdana"); - core.fillText('ui', "作者: 艾之葵", text_start, top + 112); - core.fillText('ui', 'HTML5魔塔交流群:539113091', text_start, top+112+32); - // TODO: 写自己的“关于”页面,每次增加32像素即可 + if (!core.isPlaying()) { + core.status.event = {'id': null, 'data': null}; + core.dom.startPanel.style.display = 'none'; } + core.lockControl(); + core.status.event.id = 'about'; + + core.clearMap('ui', 0, 0, 416, 416); + var left = 48, top = 36, right = 416 - 2 * left, bottom = 416 - 2 * top; + + core.setAlpha('ui', 0.85); + core.fillRect('ui', left, top, right, bottom, '#000000'); + core.setAlpha('ui', 1); + core.strokeRect('ui', left - 1, top - 1, right + 1, bottom + 1, '#FFFFFF', 2); + + var text_start = left + 24; + + // 名称 + core.canvas.ui.textAlign = "left"; + core.fillText('ui', "HTML5 魔塔样板", text_start, top+35, "#FFD700", "bold 22px Verdana"); + core.fillText('ui', "版本: "+core.firstData.version, text_start, top + 80, "#FFFFFF", "bold 17px Verdana"); + core.fillText('ui', "作者: 艾之葵", text_start, top + 112); + core.fillText('ui', 'HTML5魔塔交流群:539113091', text_start, top+112+32); + // TODO: 写自己的“关于”页面,每次增加32像素即可 +} +}, +"plugins": { +"plugin": function () { + ////// 插件编写,可以在这里写自己额外需要执行的脚本 ////// + var closure = {}; + + // 在这里写的代码,在所有模块加载完毕后,游戏开始前会被执行 + console.log("插件编写测试"); + // 可以写一些其他的被直接执行的代码 + + // 在这里写所有需要自定义的函数 + // 写法必须是 closure.xxx = function (args) { ... + closure.test = function () { + console.log("插件函数执行测试"); + } + // 可以在任何地方(如afterXXX或自定义脚本事件)调用函数,方法为 core.plugin.xxx(); + + return closure; +} } } \ No newline at end of file diff --git a/更新说明.txt b/更新说明.txt index 2f95e1f8..13d6aeb8 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -3,6 +3,7 @@ 全GUI造塔,现在用户无需打开任何文件直接编辑JS代码了。 整体改变目录架构,将数据和逻辑进行分离 支持48x32的怪物和NPC素材 +支持插件编写,用户可以根据需求来写插件了 加点改成系统开关进行处理,怪物手册会列出加点值 支持带有血量上限的塔 增加前景图片绘制