合并全塔属性的样式
This commit is contained in:
parent
566462d6ea
commit
7707e9f689
@ -685,10 +685,6 @@ core.updateHeroIcon()
|
||||
更新状态栏上的勇士图标。
|
||||
|
||||
|
||||
core.updateGlobalAttribute()
|
||||
更新全局属性,例如状态栏的背景图等。
|
||||
|
||||
|
||||
core.setToolbarButton(useButtom)
|
||||
设置工具栏是否是拓展键盘。
|
||||
|
||||
|
||||
@ -684,10 +684,6 @@ core.updateHeroIcon()
|
||||
更新状态栏上的勇士图标。
|
||||
|
||||
|
||||
core.updateGlobalAttribute()
|
||||
更新全局属性,例如状态栏的背景图等。
|
||||
|
||||
|
||||
core.setToolbarButton(useButtom)
|
||||
设置工具栏是否是拓展键盘。
|
||||
|
||||
|
||||
@ -557,6 +557,35 @@ return '{' + [
|
||||
*/;
|
||||
|
||||
|
||||
mainStyle_m
|
||||
: '主要样式设置:' '标题界面背景图(全路径):' EvalString BGNL? Newline
|
||||
'标题样式;可写 display: none 隐藏标题' EvalString BGNL? Newline
|
||||
'标题按钮样式:' EvalString BGNL? Newline
|
||||
'横屏状态栏背景;url(...) 0 0/100% 100% no-repeat 可将图片拉伸自适配' BGNL? Newline EvalString BGNL? Newline
|
||||
'竖屏状态栏背景:' EvalString BGNL? Newline
|
||||
'竖屏工具栏背景:' EvalString BGNL? Newline
|
||||
'楼层切换样式:' EvalString BGNL? Newline
|
||||
'状态栏颜色' ColorString Colour '边框颜色' ColorString Colour '全局字体' EvalString BEND
|
||||
|
||||
/* mainStyle_m
|
||||
tooltip : 主要样式设置
|
||||
default : ["project/images/bg.jpg", "color: black", "background-color: #32369F; opacity: 0.85; color: #FFFFFF; border: #FFFFFF 2px solid; caret-color: #FFD700;", "url(project/materials/ground.png) repeat", "url(project/materials/ground.png) repeat", "url(project/materials/ground.png) repeat", "background-color: black; color: white", "255,255,255,1", "rgba(255,255,255,1)", "204,204,204,1", "rgba(204,204,204,1)", "Verdana"]
|
||||
helpUrl : https://h5mota.com/games/template/_docs/#/event
|
||||
var code = {
|
||||
startBackground: EvalString_0,
|
||||
startLogoStyle: EvalString_1,
|
||||
startButtonsStyle: EvalString_2,
|
||||
statusLeftBackground: EvalString_3,
|
||||
statusTopBackground: EvalString_4,
|
||||
toolsBackground: EvalString_5,
|
||||
floorChangingStyle: EvalString_6,
|
||||
statusBarColor: JSON.parse('['+ColorString_0+']'),
|
||||
borderColor: JSON.parse('['+ColorString_1+']'),
|
||||
font: EvalString_7
|
||||
};
|
||||
return JSON.stringify(code);
|
||||
*/;
|
||||
|
||||
//为了避免关键字冲突,全部加了_s
|
||||
//动作
|
||||
action
|
||||
@ -818,6 +847,7 @@ tip_s
|
||||
/* tip_s
|
||||
tooltip : tip:显示一段提示文字
|
||||
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=tip%EF%BC%9A%E6%98%BE%E7%A4%BA%E4%B8%80%E6%AE%B5%E6%8F%90%E7%A4%BA%E6%96%87%E5%AD%97
|
||||
allIds : ['IdString_0']
|
||||
default : ["这段话将在左上角以气泡形式显示",""]
|
||||
IdString_0 = IdString_0 && (', "icon": "' + IdString_0 + '"');
|
||||
var code = '{"type": "tip", "text": "'+EvalString_0+'"'+IdString_0+'},\n';
|
||||
@ -857,17 +887,17 @@ return code;
|
||||
|
||||
|
||||
setFloor_s
|
||||
: '设置楼层属性' ':' Floor_Meta_List '楼层名' IdString? '值' EvalString Newline
|
||||
: '设置楼层属性' ':' Floor_Meta_List '楼层名' IdString? '值' JsonEvalString Newline
|
||||
|
||||
|
||||
/* setFloor_s
|
||||
tooltip : setFloor:设置楼层属性;该楼层属性和编辑器中的楼层属性一一对应
|
||||
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=setFloor%ef%bc%9a%e8%ae%be%e7%bd%ae%e6%a5%bc%e5%b1%82%e5%b1%9e%e6%80%a7
|
||||
default : ["title","","'字符串类型的值要加引号,其他类型则不用'"]
|
||||
default : ["title","","\"新楼层名\""]
|
||||
allFloorIds : ['IdString_0']
|
||||
colour : this.dataColor
|
||||
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
||||
var code = '{"type": "setFloor", "name": "'+Floor_Meta_List_0+'"'+IdString_0+', "value": "'+EvalString_0+'"},\n';
|
||||
var code = '{"type": "setFloor", "name": "'+Floor_Meta_List_0+'"'+IdString_0+', "value": '+JsonEvalString_0+'},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
@ -1481,6 +1511,7 @@ tooltip : changeFloor: 楼层切换,动画时间可不填
|
||||
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=changefloor%EF%BC%9A%E6%A5%BC%E5%B1%82%E5%88%87%E6%8D%A2
|
||||
default : [null,"",null,"","",null,"",null]
|
||||
selectPoint : ["PosString_0", "PosString_1", "IdString_0", true]
|
||||
allFloorIds : ['IdString_0']
|
||||
colour : this.dataColor
|
||||
var toFloorId = IdString_0;
|
||||
if (Floor_List_0!='floorId') toFloorId = Floor_List_0;
|
||||
@ -3166,8 +3197,8 @@ Floor_Meta_List
|
||||
/*Floor_Meta_List ['title','name','canFlyTo', 'canUseQuickShop', 'cannotViewMap', 'cannotMoveDirectly', 'defaultGround', 'images', 'ratio', 'upFloor', 'downFloor', 'bgm', 'color', 'weather', 'underGround']*/;
|
||||
|
||||
Global_Attribute_List
|
||||
: '全局字体'|'横屏左侧状态栏背景'|'竖屏上方状态栏背景'|'竖屏下方道具栏背景'|'边框颜色'|'状态栏文字色'|'楼层转换背景'|'楼层转换文字色'|'装备列表'
|
||||
/*Global_Attribute_List ['font','statusLeftBackground','statusTopBackground', 'toolsBackground', 'borderColor', 'statusBarColor', 'floorChangingBackground', 'floorChangingTextColor', 'equipName']*/;
|
||||
: '全局字体'|'横屏左侧状态栏背景'|'竖屏上方状态栏背景'|'竖屏下方道具栏背景'|'边框颜色'|'状态栏文字色'|'楼层转换样式'|'装备列表'
|
||||
/*Global_Attribute_List ['font','statusLeftBackground','statusTopBackground', 'toolsBackground', 'borderColor', 'statusBarColor', 'floorChangingStyle', 'equipName']*/;
|
||||
|
||||
Global_Value_List
|
||||
: '血网伤害'|'中毒伤害'|'衰弱效果'|'红宝石效果'|'蓝宝石效果'|'绿宝石效果'|'红血瓶效果'|'蓝血瓶效果'|'黄血瓶效果'|'绿血瓶效果'|'破甲比例'|'反击比例'|'净化比例'|'仇恨增加值'|'动画时间'
|
||||
|
||||
@ -104,6 +104,14 @@ ActionParser.prototype.parse = function (obj,type) {
|
||||
if(!obj) obj={};
|
||||
return MotaActionBlocks['faceIds_m'].xmlText([obj.up||"", obj.down||"", obj.left||"", obj.right||""]);
|
||||
|
||||
case 'mainStyle':
|
||||
if(!obj) obj={};
|
||||
return MotaActionBlocks['mainStyle_m'].xmlText([
|
||||
obj.startBackground, obj.startLogoStyle, obj.startButtonsStyle, obj.statusLeftBackground, obj.statusTopBackground,
|
||||
obj.toolsBackground, obj.floorChangingStyle,
|
||||
obj.statusBarColor, 'rgba('+obj.statusBarColor+')', obj.borderColor, 'rgba('+obj.borderColor+')', obj.font
|
||||
]);
|
||||
|
||||
case 'shop':
|
||||
var buildsub = function(obj,parser,next){
|
||||
var text_choices = null;
|
||||
@ -568,7 +576,7 @@ ActionParser.prototype.parseAction = function() {
|
||||
break;
|
||||
case "setFloor":
|
||||
this.next = MotaActionBlocks['setFloor_s'].xmlText([
|
||||
data.name, data.floorId||null, data.value, this.next]);
|
||||
data.name, data.floorId||null, JSON.stringify(data.value), this.next]);
|
||||
break;
|
||||
case "setGlobalAttribute":
|
||||
this.next = MotaActionBlocks['setGlobalAttribute_s'].xmlText([
|
||||
@ -1222,7 +1230,7 @@ MotaActionFunctions.pattern=MotaActionFunctions.pattern||{};
|
||||
MotaActionFunctions.pattern.id=/^(flag|global):([a-zA-Z0-9_\u4E00-\u9FCC]+)$/;
|
||||
MotaActionFunctions.pattern.id2=/^flag:([a-zA-Z0-9_\u4E00-\u9FCC]+),flag:([a-zA-Z0-9_\u4E00-\u9FCC]+)$/;
|
||||
MotaActionFunctions.pattern.idWithoutFlag=/^[0-9a-zA-Z_][0-9a-zA-Z_\-:]*$/;
|
||||
MotaActionFunctions.pattern.colorRe=/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(,0(\.\d+)?|,1)?$/;
|
||||
MotaActionFunctions.pattern.colorRe=/^[0-9 ]+,[0-9 ]+,[0-9 ]+(,[0-9. ]+)?$/;
|
||||
MotaActionFunctions.pattern.fontRe=/^(italic )?(bold )?(\d+)px ([a-zA-Z0-9_\u4E00-\u9FCC]+)$/;
|
||||
|
||||
|
||||
|
||||
@ -595,7 +595,7 @@ Blockly.FieldColour.prototype.createWidget_ = function() {
|
||||
var getValue=function(){
|
||||
// return self.getValue() // css颜色
|
||||
var f = pb.getFieldValue(targetf);
|
||||
if (/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(,0(\.\d+)?|,1)?$/.test(f)) {
|
||||
if (/^[0-9 ]+,[0-9 ]+,[0-9 ]+(,[0-9. ]+)?$/.test(f)) {
|
||||
return f;
|
||||
}
|
||||
return "";
|
||||
@ -656,7 +656,7 @@ Blockly.FieldTextInput.prototype.showInlineEditor_ = function(quietInput) {
|
||||
// 给inputDom绑事件
|
||||
inputDom.oninput=function(){
|
||||
var value=inputDom.value
|
||||
if(/[0-9 ]+,[0-9 ]+,[0-9 ]+(,[0-9. ]+)?/.test(value)){
|
||||
if(/^[0-9 ]+,[0-9 ]+,[0-9 ]+(,[0-9. ]+)?$/.test(value)){
|
||||
setValue('rgba('+value+')')
|
||||
}
|
||||
}
|
||||
|
||||
@ -82,6 +82,7 @@ editor_blocklyconfig=(function(){
|
||||
"time": 160, "openSound": "door.mp3", "closeSound": "door.mp3", "keys": {"yellowKey": 1, "orangeKey": 1}
|
||||
}, 'doorInfo'),
|
||||
MotaActionBlocks['faceIds_m'].xmlText(),
|
||||
MotaActionBlocks['mainStyle_m'].xmlText(),
|
||||
],
|
||||
'显示文字':[
|
||||
MotaActionBlocks['text_0_s'].xmlText(),
|
||||
|
||||
@ -451,7 +451,7 @@ editor_table_wrapper = function (editor) {
|
||||
editor_table.prototype.selectColor = function (input) {
|
||||
if (input.value != null) {
|
||||
var str = input.value.toString().replace(/[^\d.,]/g, '');
|
||||
if (/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(,0(\.\d+)?|,1)?$/.test(str)) {
|
||||
if (/^[0-9 ]+,[0-9 ]+,[0-9 ]+(,[0-9. ]+)?$/.test(str)) {
|
||||
document.getElementById('colorPicker').value = str;
|
||||
}
|
||||
}
|
||||
|
||||
@ -109,27 +109,6 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
||||
"_docs": "文件映射",
|
||||
"_data": "文件名映射,目前仅对images, animates, bgms, sounds有效。\n例如定义 {\"精灵石.mp3\":\"jinglingshi.mp3\"} 就可以使用\ncore.playBgm(\"精灵石.mp3\") 或对应的事件来播放该bgm。"
|
||||
},
|
||||
"startBackground": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "标题背景",
|
||||
"_data": "标题界面的背景,建议使用jpg格式以压缩背景图空间"
|
||||
},
|
||||
"startLogoStyle": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "标题样式",
|
||||
"_data": "标题样式:可以改变颜色,也可以写\"display: none\"来隐藏标题"
|
||||
},
|
||||
"startButtonsStyle": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "标题按钮样式",
|
||||
"_data": "标题界面按钮的样式;caret-color指的是当前选中项的边框颜色"
|
||||
},
|
||||
"levelChoose": {
|
||||
"_leaf": true,
|
||||
"_type": "event",
|
||||
@ -153,61 +132,12 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
||||
"_docs": "标题音乐",
|
||||
"_data": "在标题界面应该播放的bgm内容"
|
||||
},
|
||||
"statusLeftBackground": {
|
||||
"styles": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "横状态栏",
|
||||
"_data": "横屏时左侧状态栏的背景样式,可以定义背景图、平铺方式等。\n具体请网上搜索\"css background\"了解写法。\n如果弄一张图片作为背景图,推荐写法:\n\"url(project/images/XXX.png) 0 0/100% 100% no-repeat\"\n图片最好进行一些压缩等操作节省流量。"
|
||||
},
|
||||
"statusTopBackground": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "竖状态栏",
|
||||
"_data": "竖屏时上方状态栏的背景样式,可以定义背景图、平铺方式等。\n具体请网上搜索\"css background\"了解写法。\n如果弄一张图片作为背景图,推荐写法:\n\"url(project/images/XXX.png) 0 0/100% 100% no-repeat\"\n图片最好进行一些压缩等操作节省流量。"
|
||||
},
|
||||
"toolsBackground": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "竖工具栏",
|
||||
"_data": "竖屏时下方工具栏的背景样式,可以定义背景图、平铺方式等。\n具体请网上搜索\"css background\"了解写法。\n如果弄一张图片作为背景图,推荐写法:\n\"url(project/images/XXX.png) 0 0/100% 100% no-repeat\"\n图片最好进行一些压缩等操作节省流量。"
|
||||
},
|
||||
"borderColor": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "边框色",
|
||||
"_data": "边框颜色,包括游戏边界的边框和对话框边框等。"
|
||||
},
|
||||
"statusBarColor": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "状态栏文字色",
|
||||
"_data": "状态栏的文字颜色,默认是白色"
|
||||
},
|
||||
"floorChangingBackground": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "转场背景",
|
||||
"_data": "楼层转换界面的背景样式;可以使用纯色(默认值black),也可以使用图片(参见状态栏的图片写法)"
|
||||
},
|
||||
"floorChangingTextColor": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "转场文字",
|
||||
"_data": "楼层转换界面的文字颜色,默认是白色"
|
||||
},
|
||||
"font": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_string": true,
|
||||
"_docs": "全局字体",
|
||||
"_data": "游戏中使用的字体,默认是Verdana"
|
||||
"_type": "event",
|
||||
"_event": "mainStyle",
|
||||
"_docs": "主样式",
|
||||
"_data": "主要样式设置,包括标题、按钮、状态栏等的背景色等"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -2063,12 +2063,17 @@ control.prototype.getRealStatusOrDefault = function (status, name) {
|
||||
|
||||
////// 设置某个属性的增幅值 //////
|
||||
control.prototype.setBuff = function (name, value) {
|
||||
// 仅保留三位有效buff值
|
||||
value = parseFloat(value.toFixed(3));
|
||||
this.setFlag('__'+name+'_buff__', value);
|
||||
}
|
||||
|
||||
////// 加减某个属性的增幅值 //////
|
||||
control.prototype.addBuff = function (name, value) {
|
||||
this.setFlag('__'+name+'_buff__', this.getBuff(name) + value);
|
||||
var buff = this.getBuff(name) + value;
|
||||
// 仅保留三位有效buff值
|
||||
buff = parseFloat(buff.toFixed(3));
|
||||
this.setFlag('__'+name+'_buff__', buff);
|
||||
}
|
||||
|
||||
////// 获得某个属性的增幅值 //////
|
||||
@ -2530,61 +2535,6 @@ control.prototype.updateHeroIcon = function (name) {
|
||||
core.statusBar.image.name.src = canvas.toDataURL("image/png");
|
||||
}
|
||||
|
||||
control.prototype.updateGlobalAttribute = function (name) {
|
||||
if (name == null) name = Object.keys(core.status.globalAttribute);
|
||||
if (name instanceof Array) {
|
||||
name.forEach(function (t) {
|
||||
core.control.updateGlobalAttribute(t);
|
||||
});
|
||||
return;
|
||||
}
|
||||
var attribute = core.status.globalAttribute || core.initStatus.globalAttribute;
|
||||
if (attribute == null) return;
|
||||
switch (name) {
|
||||
case 'statusLeftBackground':
|
||||
if (!core.domStyle.isVertical) {
|
||||
core.dom.statusBar.style.background = attribute[name];
|
||||
}
|
||||
break;
|
||||
case 'statusTopBackground':
|
||||
if (core.domStyle.isVertical) {
|
||||
core.dom.statusBar.style.background = attribute[name];
|
||||
}
|
||||
break;
|
||||
case 'toolsBackground':
|
||||
if (core.domStyle.isVertical) {
|
||||
core.dom.toolBar.style.background = attribute[name];
|
||||
}
|
||||
break;
|
||||
case 'borderColor':
|
||||
{
|
||||
var border = '3px ' + attribute[name] + ' solid';
|
||||
core.dom.statusBar.style.borderTop = border;
|
||||
core.dom.statusBar.style.borderLeft = border;
|
||||
core.dom.statusBar.style.borderRight = core.domStyle.isVertical?border:'';
|
||||
core.dom.statusBar.style.borderBottom = core.domStyle.isVertical?'':border;
|
||||
core.dom.gameDraw.style.border = border;
|
||||
core.dom.toolBar.style.borderLeft = border;
|
||||
core.dom.toolBar.style.borderRight = core.domStyle.isVertical?border:'';
|
||||
core.dom.toolBar.style.borderBottom = core.domStyle.isVertical?border:'';
|
||||
break;
|
||||
}
|
||||
case 'statusBarColor':
|
||||
{
|
||||
var texts = core.dom.statusTexts;
|
||||
for (var i=0;i<texts.length;i++)
|
||||
texts[i].style.color = attribute[name];
|
||||
break;
|
||||
}
|
||||
case 'floorChangingBackground':
|
||||
core.dom.floorMsgGroup.style.background = attribute[name];
|
||||
break;
|
||||
case 'floorChangingTextColor':
|
||||
core.dom.floorMsgGroup.style.color = attribute[name];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
////// 改变工具栏为按钮1-8 //////
|
||||
control.prototype.setToolbarButton = function (useButton) {
|
||||
if (!core.domStyle.showStatusBar) {
|
||||
@ -2731,7 +2681,7 @@ control.prototype.resize = function() {
|
||||
BAR_WIDTH: BAR_WIDTH,
|
||||
outerSize: CANVAS_WIDTH * core.domStyle.scale + 2 * BORDER,
|
||||
globalAttribute: globalAttribute,
|
||||
border: '3px ' + globalAttribute.borderColor + ' solid',
|
||||
border: '3px ' + core.arrayToRGBA(globalAttribute.borderColor) + ' solid',
|
||||
statusDisplayArr: statusDisplayArr,
|
||||
count: count,
|
||||
col: col,
|
||||
@ -2762,10 +2712,9 @@ control.prototype._resize_gameGroup = function (obj) {
|
||||
gameGroup.style.top = (obj.clientHeight - totalHeight) / 2 + "px";
|
||||
// floorMsgGroup
|
||||
var floorMsgGroup = core.dom.floorMsgGroup;
|
||||
floorMsgGroup.style = obj.globalAttribute.floorChangingStyle;
|
||||
floorMsgGroup.style.width = obj.outerSize - 2 * obj.BORDER + "px";
|
||||
floorMsgGroup.style.height = totalHeight - 2 * obj.BORDER + "px";
|
||||
floorMsgGroup.style.background = obj.globalAttribute.floorChangingBackground;
|
||||
floorMsgGroup.style.color = obj.globalAttribute.floorChangingTextColor;
|
||||
// musicBtn
|
||||
if (core.domStyle.isVertical || core.domStyle.scale < 1) {
|
||||
core.dom.musicBtn.style.right = core.dom.musicBtn.style.bottom = "3px";
|
||||
|
||||
15
libs/core.js
15
libs/core.js
@ -191,14 +191,13 @@ function core() {
|
||||
},
|
||||
"globalAttribute": {
|
||||
'equipName': main.equipName || [],
|
||||
"statusLeftBackground": main.statusLeftBackground || "url(project/materials/ground.png) repeat",
|
||||
"statusTopBackground": main.statusTopBackground || "url(project/materials/ground.png) repeat",
|
||||
"toolsBackground": main.toolsBackground || "url(project/materials/ground.png) repeat",
|
||||
"borderColor": main.borderColor || "white",
|
||||
"statusBarColor": main.statusBarColor || "white",
|
||||
"floorChangingBackground": main.floorChangingBackground || "black",
|
||||
"floorChangingTextColor": main.floorChangingTextColor || "white",
|
||||
"font": main.font || "Verdana"
|
||||
"statusLeftBackground": main.styles.statusLeftBackground || "url(project/materials/ground.png) repeat",
|
||||
"statusTopBackground": main.styles.statusTopBackground || "url(project/materials/ground.png) repeat",
|
||||
"toolsBackground": main.styles.toolsBackground || "url(project/materials/ground.png) repeat",
|
||||
"borderColor": main.styles.borderColor || [204,204,204,1],
|
||||
"statusBarColor": main.styles.statusBarColor || [255,255,255,1],
|
||||
"floorChangingStyle": main.styles.floorChangingStyle || "background-color: black; color: white",
|
||||
"font": main.styles.font || "Verdana"
|
||||
},
|
||||
'curtainColor': null,
|
||||
'openingDoor': null,
|
||||
|
||||
@ -2579,7 +2579,7 @@ events.prototype.setEnemy = function (id, name, value, prefix) {
|
||||
////// 设置楼层属性 //////
|
||||
events.prototype.setFloorInfo = function (name, value, floorId, prefix) {
|
||||
floorId = floorId || core.status.floorId;
|
||||
core.status.maps[floorId][name] = core.calValue(value, prefix);
|
||||
core.status.maps[floorId][name] = value;
|
||||
core.updateStatusBar();
|
||||
}
|
||||
|
||||
@ -2592,10 +2592,14 @@ events.prototype.setGlobalAttribute = function (name, value) {
|
||||
// --- 检查 []
|
||||
if (value.charAt(0) == '[' && value.charAt(value.length - 1) == ']')
|
||||
value = eval(value);
|
||||
// --- 检查颜色
|
||||
if (/^[0-9 ]+,[0-9 ]+,[0-9 ]+(,[0-9. ]+)?$/.test(value)) {
|
||||
value = 'rgba(' + value + ')';
|
||||
}
|
||||
}
|
||||
core.status.globalAttribute[name] = value;
|
||||
core.updateGlobalAttribute(name);
|
||||
core.setFlag('globalAttribute', core.status.globalAttribute);
|
||||
core.resize();
|
||||
}
|
||||
|
||||
////// 设置全局开关 //////
|
||||
|
||||
20
libs/ui.js
20
libs/ui.js
@ -108,9 +108,9 @@ ui.prototype.fillBoldText = function (name, text, x, y, style, strokeStyle, font
|
||||
if (!ctx) return;
|
||||
if (font) ctx.font = font;
|
||||
if (!style) style = ctx.fillStyle;
|
||||
if (style instanceof Array) style = core.arrayToRGBA(style);
|
||||
style = core.arrayToRGBA(style);
|
||||
if (!strokeStyle) strokeStyle = '#000000';
|
||||
if (strokeStyle instanceof Array) strokeStyle = core.arrayToRGBA(strokeStyle);
|
||||
strokeStyle = core.arrayToRGBA(strokeStyle);
|
||||
ctx.fillStyle = strokeStyle;
|
||||
ctx.fillText(text, x-1, y-1);
|
||||
ctx.fillText(text, x-1, y+1);
|
||||
@ -392,15 +392,13 @@ ui.prototype.setOpacity = function (name, opacity) {
|
||||
////// 设置某个canvas的绘制属性(如颜色等) //////
|
||||
ui.prototype.setFillStyle = function (name, style) {
|
||||
var ctx = this.getContextByName(name);
|
||||
if (style instanceof Array) style = core.arrayToRGBA(style);
|
||||
if (ctx) ctx.fillStyle = style;
|
||||
if (ctx) ctx.fillStyle = core.arrayToRGBA(style);
|
||||
}
|
||||
|
||||
////// 设置某个canvas边框属性 //////
|
||||
ui.prototype.setStrokeStyle = function (name, style) {
|
||||
var ctx = this.getContextByName(name);
|
||||
if (style instanceof Array) style = core.arrayToRGBA(style);
|
||||
if (ctx) ctx.strokeStyle = style;
|
||||
if (ctx) ctx.strokeStyle = core.arrayToRGBA(style);
|
||||
}
|
||||
|
||||
////// 设置某个canvas的对齐 //////
|
||||
@ -921,7 +919,7 @@ ui.prototype._drawBackground_drawWindowSkin = function (background, left, top, r
|
||||
ui.prototype._drawBackground_drawColor = function (background, left, top, right, bottom, position, px, py, xoffset, yoffset) {
|
||||
var alpha = background[3];
|
||||
core.setAlpha('ui', alpha);
|
||||
core.setStrokeStyle('ui', core.status.globalAttribute.borderColor);
|
||||
core.setStrokeStyle('ui', core.arrayToRGBA(core.status.globalAttribute.borderColor));
|
||||
core.setFillStyle('ui', core.arrayToRGB(background));
|
||||
core.setLineWidth('ui', 2);
|
||||
// 绘制
|
||||
@ -1010,8 +1008,7 @@ ui.prototype.drawTextContent = function (ctx, content, config) {
|
||||
config.left = config.left || 0;
|
||||
config.right = config.left + (config.maxWidth == null ? (ctx != null ? ctx.canvas.width : core.__PIXELS__) : config.maxWidth)
|
||||
config.top = config.top || 0;
|
||||
config.color = config.color || textAttribute.text;
|
||||
if (config.color instanceof Array) config.color = core.arrayToRGBA(config.color);
|
||||
config.color = core.arrayToRGBA(config.color || textAttribute.text);
|
||||
if (config.bold == null) config.bold = textAttribute.bold;
|
||||
config.italic = false;
|
||||
config.align = config.align || textAttribute.align || "left";
|
||||
@ -1585,8 +1582,7 @@ ui.prototype._drawChoices_drawChoices = function (choices, isWindowSkin, hPos, v
|
||||
core.setTextAlign('ui', 'center');
|
||||
core.setFont('ui', this._buildFont(17, true));
|
||||
for (var i = 0; i < choices.length; i++) {
|
||||
var color = choices[i].color || core.status.textAttribute.text;
|
||||
if (color instanceof Array) color = core.arrayToRGBA(color);
|
||||
var color = core.arrayToRGBA(choices[i].color || core.status.textAttribute.text);
|
||||
core.setFillStyle('ui', color);
|
||||
var offset = this.HPIXEL;
|
||||
if (choices[i].icon) {
|
||||
@ -1994,7 +1990,7 @@ ui.prototype.drawBookDetail = function (index) {
|
||||
core.fillRect('data', left, top, width, height, '#000000');
|
||||
core.setAlpha('data', 1);
|
||||
core.strokeRect('data', left - 1, top - 1, width + 1, height + 1,
|
||||
core.status.globalAttribute.borderColor, 2);
|
||||
core.arrayToRGBA(core.status.globalAttribute.borderColor), 2);
|
||||
|
||||
this._drawBookDetail_drawContent(enemy, content, {top: top, content_left: content_left, bottom: bottom, validWidth: validWidth});
|
||||
}
|
||||
|
||||
@ -401,6 +401,7 @@ utils.prototype.formatSize = function (size) {
|
||||
utils.prototype.formatBigNumber = function (x, onMap) {
|
||||
x = Math.floor(parseFloat(x));
|
||||
if (!core.isset(x)) return '???';
|
||||
if (x > 1e24 || x < -1e24) return x;
|
||||
|
||||
var c = x < 0 ? "-" : "";
|
||||
x = Math.abs(x);
|
||||
@ -436,12 +437,14 @@ utils.prototype.formatBigNumber = function (x, onMap) {
|
||||
|
||||
////// 数组转RGB //////
|
||||
utils.prototype.arrayToRGB = function (color) {
|
||||
if (!(color instanceof Array)) return color;
|
||||
var nowR = this.clamp(parseInt(color[0]), 0, 255), nowG = this.clamp(parseInt(color[1]), 0, 255),
|
||||
nowB = this.clamp(parseInt(color[2]), 0, 255);
|
||||
return "#" + ((1 << 24) + (nowR << 16) + (nowG << 8) + nowB).toString(16).slice(1);
|
||||
}
|
||||
|
||||
utils.prototype.arrayToRGBA = function (color) {
|
||||
if (!(color instanceof Array)) return color;
|
||||
if (color[3] == null) color[3] = 1;
|
||||
var nowR = this.clamp(parseInt(color[0]), 0, 255), nowG = this.clamp(parseInt(color[1]), 0, 255),
|
||||
nowB = this.clamp(parseInt(color[2]), 0, 255), nowA = this.clamp(parseFloat(color[3]), 0, 1);
|
||||
|
||||
6
main.js
6
main.js
@ -200,9 +200,9 @@ main.prototype.init = function (mode, callback) {
|
||||
var mainData = data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.main;
|
||||
for(var ii in mainData)main[ii]=mainData[ii];
|
||||
|
||||
main.dom.startBackground.src = main.startBackground;
|
||||
main.dom.startLogo.style=main.startLogoStyle;
|
||||
main.dom.startButtonGroup.style = main.startButtonsStyle;
|
||||
main.dom.startBackground.src = main.styles.startBackground;
|
||||
main.dom.startLogo.style=main.styles.startLogoStyle;
|
||||
main.dom.startButtonGroup.style = main.styles.startButtonsStyle;
|
||||
main.levelChoose = main.levelChoose || [];
|
||||
main.levelChoose.forEach(function (value) {
|
||||
var span = document.createElement('span');
|
||||
|
||||
@ -41,8 +41,6 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"背景图.jpg": "bg.jpg",
|
||||
"背景音乐.mp3": "bgm.mp3"
|
||||
},
|
||||
"startBackground": "project/images/bg.jpg",
|
||||
"startLogoStyle": "color: black",
|
||||
"levelChoose": [
|
||||
{
|
||||
"title": "简单",
|
||||
@ -73,15 +71,18 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"盾牌"
|
||||
],
|
||||
"startBgm": null,
|
||||
"statusLeftBackground": "url(project/materials/ground.png) repeat",
|
||||
"statusTopBackground": "url(project/materials/ground.png) repeat",
|
||||
"toolsBackground": "url(project/materials/ground.png) repeat",
|
||||
"borderColor": "#CCCCCC",
|
||||
"statusBarColor": "white",
|
||||
"floorChangingBackground": "black",
|
||||
"floorChangingTextColor": "white",
|
||||
"font": "Verdana",
|
||||
"startButtonsStyle": "background-color: #32369F; opacity: 0.85; color: #FFFFFF; border: #FFFFFF 2px solid; caret-color: #FFD700;"
|
||||
"styles": {
|
||||
"startBackground": "project/images/bg.jpg",
|
||||
"startLogoStyle": "color: black",
|
||||
"startButtonsStyle": "background-color: #32369F; opacity: 0.85; color: #FFFFFF; border: #FFFFFF 2px solid; caret-color: #FFD700;",
|
||||
"statusLeftBackground": "url(project/materials/ground.png) repeat",
|
||||
"statusTopBackground": "url(project/materials/ground.png) repeat",
|
||||
"toolsBackground": "url(project/materials/ground.png) repeat",
|
||||
"borderColor": [204,204,204,1],
|
||||
"statusBarColor": [255,255,255,1],
|
||||
"floorChangingStyle": "background-color: black; color: white",
|
||||
"font": "Verdana"
|
||||
}
|
||||
},
|
||||
"firstData": {
|
||||
"title": "魔塔样板",
|
||||
|
||||
@ -41,7 +41,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
core._init_sys_flags();
|
||||
// 初始化界面,状态栏等
|
||||
core.resize();
|
||||
core.updateGlobalAttribute();
|
||||
// 状态栏是否显示
|
||||
if (core.hasFlag('hideStatusBar'))
|
||||
core.hideStatusBar(core.hasFlag('showToolbox'));
|
||||
@ -939,7 +938,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
var toAttribute = core.getFlag('globalAttribute', core.status.globalAttribute);
|
||||
if (!core.same(toAttribute, core.status.globalAttribute)) {
|
||||
core.status.globalAttribute = toAttribute;
|
||||
core.updateGlobalAttribute();
|
||||
core.resize();
|
||||
}
|
||||
// 重置音量
|
||||
core.events.setVolume(core.getFlag("__volume__", 1), 0);
|
||||
|
||||
3
runtime.d.ts
vendored
3
runtime.d.ts
vendored
@ -221,8 +221,7 @@ type gameStatus = {
|
||||
toolsBackground: string
|
||||
borderColor: string
|
||||
statusBarColor: string
|
||||
floorChangingBackground: string
|
||||
floorChangingTextColor: string
|
||||
floorChangingStyle: string
|
||||
font: string
|
||||
}
|
||||
curtainColor: null
|
||||
|
||||
Loading…
Reference in New Issue
Block a user