Support plugin

This commit is contained in:
oc 2018-03-15 10:00:10 +08:00
parent 896bd1947c
commit 55bae305d9
5 changed files with 54 additions and 27 deletions

View File

@ -67,6 +67,7 @@ HTML5 canvas制作的魔塔样板支持全平台游戏
* [x] 全GUI造塔现在用户无需打开任何文件直接编辑JS代码了。
* [x] 整体改变目录架构,将数据和逻辑进行分离
* [x] 支持48x32的怪物和NPC素材
* [x] 支持插件编写,用户可以根据需求来写插件了
* [x] 加点改成系统开关进行处理,怪物手册会列出加点值
* [x] 支持带有血量上限的塔
* [x] 增加前景图片绘制

View File

@ -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();
});

View File

@ -17,5 +17,8 @@ functions_comment_c456ea59_6018_45ef_8bcc_211a24c627dc =
},
"ui" : {
"drawAbout" : "绘制“关于”界面"
},
"plugins": {
"plugin": "自定义插件编写"
}
}

View File

@ -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;
}
}
}

View File

@ -3,6 +3,7 @@
全GUI造塔现在用户无需打开任何文件直接编辑JS代码了。
整体改变目录架构,将数据和逻辑进行分离
支持48x32的怪物和NPC素材
支持插件编写,用户可以根据需求来写插件了
加点改成系统开关进行处理,怪物手册会列出加点值
支持带有血量上限的塔
增加前景图片绘制