绘制矩形和图片旋转

This commit is contained in:
ckcz123 2020-05-25 19:51:27 +08:00
parent b6ecb6526e
commit 9f139d1a7a
8 changed files with 126 additions and 85 deletions

View File

@ -688,7 +688,6 @@ action
| callLoad_s | callLoad_s
| previewUI_s | previewUI_s
| clearMap_s | clearMap_s
| clearMap_1_s
| setAttribute_s | setAttribute_s
| fillText_s | fillText_s
| fillBoldText_s | fillBoldText_s
@ -1769,7 +1768,7 @@ return code;
showTextImage_s showTextImage_s
: '显示图片化文本' '文本内容' EvalString BGNL? : '显示图片化文本' '文本内容' EvalString BGNL?
'图片编号' Int '起点像素' 'x' PosString 'y' PosString '行距' Number '不透明度' Number '时间' Int '不等待执行完毕' Bool Newline '图片编号' Int '起点像素' 'x' PosString 'y' PosString '行距' Number '翻转' Reverse_List '不透明度' Number '时间' Int '不等待执行完毕' Bool Newline
/* showTextImage_s /* showTextImage_s
@ -1777,10 +1776,13 @@ tooltip : showTextImage显示图片化文本
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=showTextImage%ef%bc%9a%e6%98%be%e7%a4%ba%e6%96%87%e6%9c%ac%e5%8c%96%e5%9b%be%e7%89%87 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=showTextImage%ef%bc%9a%e6%98%be%e7%a4%ba%e6%96%87%e6%9c%ac%e5%8c%96%e5%9b%be%e7%89%87
doubleclicktext : EvalString_0 doubleclicktext : EvalString_0
colour : this.printColor colour : this.printColor
default : ["可以使用setText事件来控制字体、颜色、大小、偏移量等",1,"0","0",1.4,1,0,false] default : ["可以使用setText事件来控制字体、颜色、大小、偏移量等",1,"0","0",1.4,"null",1,0,false]
if(Int_0<=0 || Int_0>50) throw new Error('图片编号在1~50之间'); if(Int_0<=0 || Int_0>50) throw new Error('图片编号在1~50之间');
if (Reverse_List_0 && Reverse_List_0 != 'null') {
Reverse_List_0 = ', "reverse": "' + Reverse_List_0 + '"';
} else Reverse_List_0 = '';
var async = Bool_0?', "async": true':''; var async = Bool_0?', "async": true':'';
var code = '{"type": "showTextImage", "code": '+Int_0+', "text": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+'], "lineHeight": '+Number_0+', "opacity": '+Number_1+', "time": '+Int_1+async+'},\n'; var code = '{"type": "showTextImage", "code": '+Int_0+', "text": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+'], "lineHeight": '+Number_0+Reverse_List_0+', "opacity": '+Number_1+', "time": '+Int_1+async+'},\n';
return code; return code;
*/; */;
@ -1800,7 +1802,7 @@ return code;
*/; */;
showGif_s showGif_s
: '显示动图' EvalString? '起点像素位置' 'x' PosString? 'y' PosString? Newline : '显示或清除动图' EvalString? '起点像素位置' 'x' PosString? 'y' PosString? Newline
/* showGif_s /* showGif_s
@ -2501,29 +2503,19 @@ return code;
clearMap_s clearMap_s
: '清除画布' '起点像素' 'x' PosString 'y' PosString '宽' PosString '高' PosString Newline : '清除画布' '起点像素' 'x' PosString? 'y' PosString? '宽' PosString? '高' PosString? Newline
/* clearMap_s /* clearMap_s
tooltip : clearMap: 清除画布 tooltip : clearMap: 清除画布
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=clearMap%ef%bc%9a%e6%b8%85%e9%99%a4%e7%94%bb%e5%b8%83 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=clearMap%ef%bc%9a%e6%b8%85%e9%99%a4%e7%94%bb%e5%b8%83
colour : this.subColor colour : this.subColor
default : ["0", "0", "100", "100"] default : ["", "", "", ""]
previewBlock : true previewBlock : true
var code = '{"type": "clearMap", "x": ' + PosString_0 + ', "y": ' + PosString_1 + PosString_0 = PosString_0 && (', "x": ' + PosString_0);
', "width": ' + PosString_2 + ', "height": ' + PosString_3 + '},\n'; PosString_1 = PosString_1 && (', "y": ' + PosString_1);
return code; PosString_2 = PosString_2 && (', "width": ' + PosString_2);
*/; PosString_3 = PosString_3 && (', "height": ' + PosString_3);
var code = '{"type": "clearMap"'+PosString_0+PosString_1+PosString_2+PosString_3+'},\n';
clearMap_1_s
: '清空画布' Newline
/* clearMap_1_s
tooltip : clearMap: 清除画布
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=clearMap%ef%bc%9a%e6%b8%85%e9%99%a4%e7%94%bb%e5%b8%83
previewBlock : true
colour : this.subColor
var code = '{"type": "clearMap"},\n';
return code; return code;
*/; */;
@ -2606,33 +2598,35 @@ return code;
*/; */;
fillRect_s fillRect_s
: '绘制矩形' '起点像素' 'x' PosString 'y' PosString '宽' PosString '高' PosString '圆角半径' PosString? '颜色' ColorString? Colour Newline : '绘制矩形' '起点像素' 'x' PosString 'y' PosString '宽' PosString '高' PosString '圆角半径' PosString? '旋转度数' PosString? '颜色' ColorString? Colour Newline
/* fillRect_s /* fillRect_s
tooltip : fillRect绘制矩形 tooltip : fillRect绘制矩形
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillRect%ef%bc%9a%e7%bb%98%e5%88%b6%e7%9f%a9%e5%bd%a2 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillRect%ef%bc%9a%e7%bb%98%e5%88%b6%e7%9f%a9%e5%bd%a2
colour : this.subColor colour : this.subColor
previewBlock : true previewBlock : true
default : ["0","0","flag:x","300","","",null] default : ["0","0","flag:x","300","","","","rgba(255,255,255,1)"]
ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : ''; ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : '';
PosString_4 = PosString_4 ? (', "radius": '+PosString_4) : ''; PosString_4 = PosString_4 ? (', "radius": '+PosString_4) : '';
var code = '{"type": "fillRect", "x": '+PosString_0+', "y": '+PosString_1+', "width": '+PosString_2+', "height": '+PosString_3+PosString_4+ColorString_0+'},\n'; PosString_5 = PosString_5 ? (', "angle": ' + PosString_5) : '';
var code = '{"type": "fillRect", "x": '+PosString_0+', "y": '+PosString_1+', "width": '+PosString_2+', "height": '+PosString_3+PosString_4+PosString_5+ColorString_0+'},\n';
return code; return code;
*/; */;
strokeRect_s strokeRect_s
: '绘制矩形边框' '起点像素' 'x' PosString 'y' PosString '宽' PosString '高' PosString '圆角半径' PosString? '颜色' ColorString? Colour '线宽' IntString? Newline : '绘制矩形边框' '起点像素' 'x' PosString 'y' PosString '宽' PosString '高' PosString '圆角半径' PosString? '旋转度数' PosString? '颜色' ColorString? Colour '线宽' IntString? Newline
/* strokeRect_s /* strokeRect_s
tooltip : strokeRect绘制矩形边框 tooltip : strokeRect绘制矩形边框
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=strokeRect%ef%bc%9a%e7%bb%98%e5%88%b6%e7%9f%a9%e5%bd%a2%e8%be%b9%e6%a1%86 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=strokeRect%ef%bc%9a%e7%bb%98%e5%88%b6%e7%9f%a9%e5%bd%a2%e8%be%b9%e6%a1%86
colour : this.subColor colour : this.subColor
previewBlock : true previewBlock : true
default : ["0","0","flag:x","300","","",null,""] default : ["0","0","flag:x","300","","","","rgba(255,255,255,1)",""]
ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : ''; ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : '';
IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : ''; IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : '';
PosString_4 = PosString_4 ? (', "radius": '+PosString_4) : ''; PosString_4 = PosString_4 ? (', "radius": '+PosString_4) : '';
var code = '{"type": "strokeRect", "x": '+PosString_0+', "y": '+PosString_1+', "width": '+PosString_2+', "height": '+PosString_3+PosString_4+ColorString_0+IntString_0+'},\n'; PosString_5 = PosString_5 ? (', "angle": ' + PosString_5) : '';
var code = '{"type": "strokeRect", "x": '+PosString_0+', "y": '+PosString_1+', "width": '+PosString_2+', "height": '+PosString_3+PosString_4+PosString_5+ColorString_0+IntString_0+'},\n';
return code; return code;
*/; */;
@ -2644,7 +2638,7 @@ tooltip : drawLine绘制线段
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawLine%ef%bc%9a%e7%bb%98%e5%88%b6%e7%ba%bf%e6%ae%b5 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawLine%ef%bc%9a%e7%bb%98%e5%88%b6%e7%ba%bf%e6%ae%b5
colour : this.subColor colour : this.subColor
previewBlock : true previewBlock : true
default : ["0","0","flag:x","300","",null,""] default : ["0","0","flag:x","300","","rgba(255,255,255,1)",""]
ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : ''; ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : '';
IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : ''; IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : '';
var code = '{"type": "drawLine", "x1": '+PosString_0+', "y1": '+PosString_1+', "x2": '+PosString_2+', "y2": '+PosString_3+ColorString_0+IntString_0+'},\n'; var code = '{"type": "drawLine", "x1": '+PosString_0+', "y1": '+PosString_1+', "x2": '+PosString_2+', "y2": '+PosString_3+ColorString_0+IntString_0+'},\n';
@ -2659,7 +2653,7 @@ tooltip : drawArrow绘制箭头
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawArrow%ef%bc%9a%e7%bb%98%e5%88%b6%e7%ae%ad%e5%a4%b4 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawArrow%ef%bc%9a%e7%bb%98%e5%88%b6%e7%ae%ad%e5%a4%b4
colour : this.subColor colour : this.subColor
previewBlock : true previewBlock : true
default : ["0","0","flag:x","300","",null,""] default : ["0","0","flag:x","300","","rgba(255,255,255,1)",""]
ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : ''; ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : '';
IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : ''; IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : '';
var code = '{"type": "drawArrow", "x1": '+PosString_0+', "y1": '+PosString_1+', "x2": '+PosString_2+', "y2": '+PosString_3+ColorString_0+IntString_0+'},\n'; var code = '{"type": "drawArrow", "x1": '+PosString_0+', "y1": '+PosString_1+', "x2": '+PosString_2+', "y2": '+PosString_3+ColorString_0+IntString_0+'},\n';
@ -2675,7 +2669,7 @@ tooltip : fillPolygon绘制多边形
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillPolygon%ef%bc%9a%e7%bb%98%e5%88%b6%e5%a4%9a%e8%be%b9%e5%bd%a2 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillPolygon%ef%bc%9a%e7%bb%98%e5%88%b6%e5%a4%9a%e8%be%b9%e5%bd%a2
colour : this.subColor colour : this.subColor
previewBlock : true previewBlock : true
default : ["0,0,100","0,100,0","",null] default : ["0,0,100","0,100,0","","rgba(255,255,255,1)"]
var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/; var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/;
if(!pattern2.test(EvalString_0) || !pattern2.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式'); if(!pattern2.test(EvalString_0) || !pattern2.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式');
EvalString_0=EvalString_0.split(','); EvalString_0=EvalString_0.split(',');
@ -2696,7 +2690,7 @@ tooltip : strokePolygon绘制多边形边框
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=strokePolygon%ef%bc%9a%e7%bb%98%e5%88%b6%e5%a4%9a%e8%be%b9%e5%bd%a2%e8%be%b9%e6%a1%86 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=strokePolygon%ef%bc%9a%e7%bb%98%e5%88%b6%e5%a4%9a%e8%be%b9%e5%bd%a2%e8%be%b9%e6%a1%86
colour : this.subColor colour : this.subColor
previewBlock : true previewBlock : true
default : ["0,0,100","0,100,0","",null,""] default : ["0,0,100","0,100,0","","rgba(255,255,255,1)",""]
var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/; var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/;
if(!pattern2.test(EvalString_0) || !pattern2.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式'); if(!pattern2.test(EvalString_0) || !pattern2.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式');
EvalString_0=EvalString_0.split(','); EvalString_0=EvalString_0.split(',');
@ -2710,14 +2704,14 @@ return code;
*/; */;
fillEllipse_s fillEllipse_s
: '绘制椭圆' '中心' 'x' PosString 'y' PosString '长半径' PosString '短半径' PosString '顺时针旋转度数' PosString? '颜色' ColorString? Colour Newline : '绘制椭圆' '中心' 'x' PosString 'y' PosString '长半径' PosString '短半径' PosString '旋转度数' PosString? '颜色' ColorString? Colour Newline
/* fillEllipse_s /* fillEllipse_s
tooltip : fillEllipse绘制椭圆 tooltip : fillEllipse绘制椭圆
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillEllipse%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9c%86 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillEllipse%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9c%86
colour : this.subColor colour : this.subColor
previewBlock : true previewBlock : true
default : ["0","0","100","100","0","",null] default : ["0","0","100","100","0","","rgba(255,255,255,1)"]
ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : ''; ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : '';
PosString_4 = PosString_4 ? (', "angle": ' + PosString_4) : ''; PosString_4 = PosString_4 ? (', "angle": ' + PosString_4) : '';
var code = '{"type": "fillEllipse", "x": '+PosString_0+', "y": '+PosString_1+', "a": '+PosString_2+', "b": '+PosString_3+PosString_4+ColorString_0+'},\n'; var code = '{"type": "fillEllipse", "x": '+PosString_0+', "y": '+PosString_1+', "a": '+PosString_2+', "b": '+PosString_3+PosString_4+ColorString_0+'},\n';
@ -2725,14 +2719,14 @@ return code;
*/; */;
strokeEllipse_s strokeEllipse_s
: '绘制椭圆边框' '中心' 'x' PosString 'y' PosString '长半径' PosString '短半径' PosString '顺时针旋转度数' PosString? '颜色' ColorString? Colour '线宽' IntString? Newline : '绘制椭圆边框' '中心' 'x' PosString 'y' PosString '长半径' PosString '短半径' PosString '旋转度数' PosString? '颜色' ColorString? Colour '线宽' IntString? Newline
/* strokeEllipse_s /* strokeEllipse_s
tooltip : strokeEllipse绘制椭圆边框 tooltip : strokeEllipse绘制椭圆边框
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=strokeEllipse%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9c%86%e8%be%b9%e6%a1%86 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=strokeEllipse%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9c%86%e8%be%b9%e6%a1%86
colour : this.subColor colour : this.subColor
previewBlock : true previewBlock : true
default : ["0","0","100","100","0","",null,""] default : ["0","0","100","100","0","","rgba(255,255,255,1)",""]
ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : ''; ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : '';
IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : ''; IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : '';
PosString_4 = PosString_4 ? (', "angle": ' + PosString_4) : ''; PosString_4 = PosString_4 ? (', "angle": ' + PosString_4) : '';
@ -2747,7 +2741,7 @@ fillArc_s
tooltip : fillArc绘制扇形 tooltip : fillArc绘制扇形
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillEllipse%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9c%86 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillEllipse%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9c%86
colour : this.subColor colour : this.subColor
default : ["0","0","100","0","90","",null,""] default : ["0","0","100","0","90","","rgba(255,255,255,1)",""]
ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : ''; ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : '';
var code = '{"type": "fillArc", "x": '+PosString_0+', "y": '+PosString_1+', "r": '+PosString_2+', "start": '+PosString_3+', "end": '+PosString_4+ColorString_0+'},\n'; var code = '{"type": "fillArc", "x": '+PosString_0+', "y": '+PosString_1+', "r": '+PosString_2+', "start": '+PosString_3+', "end": '+PosString_4+ColorString_0+'},\n';
return code; return code;
@ -2761,7 +2755,7 @@ strokeArc_s
tooltip : strokeArc绘制弧 tooltip : strokeArc绘制弧
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillEllipse%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9c%86 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=fillEllipse%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9c%86
colour : this.subColor colour : this.subColor
default : ["0","0","100","0","90","",null,""] default : ["0","0","100","0","90","","rgba(255,255,255,1)",""]
ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : ''; ColorString_0 = ColorString_0 ? (', "style": ['+ColorString_0+']') : '';
IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : ''; IntString_0 = IntString_0 ? (', "lineWidth": '+IntString_0) : '';
var code = '{"type": "strokeArc", "x": '+PosString_0+', "y": '+PosString_1+', "r": '+PosString_2+', "start": '+PosString_3+', "end": '+PosString_4+ColorString_0+IntString_0+'},\n'; var code = '{"type": "strokeArc", "x": '+PosString_0+', "y": '+PosString_1+', "r": '+PosString_2+', "start": '+PosString_3+', "end": '+PosString_4+ColorString_0+IntString_0+'},\n';
@ -2771,7 +2765,7 @@ return code;
drawImage_s drawImage_s
: '绘制图片' EvalString '翻转' Reverse_List '起点像素' 'x' PosString 'y' PosString '宽' PosString? '高' PosString? Newline : '绘制图片' EvalString '翻转' Reverse_List '起点像素' 'x' PosString 'y' PosString '宽' PosString? '高' PosString? '旋转度数' PosString? Newline
/* drawImage_s /* drawImage_s
@ -2779,35 +2773,37 @@ tooltip : drawImage绘制图片
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawImage%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9b%be%e7%89%87 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawImage%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9b%be%e7%89%87
previewBlock : true previewBlock : true
allImages : ['EvalString_0'] allImages : ['EvalString_0']
default : ["bg.jpg","null","0","0","",""] default : ["bg.jpg","null","0","0","","",""]
colour : this.subColor colour : this.subColor
if (Reverse_List_0 && Reverse_List_0 != 'null') { if (Reverse_List_0 && Reverse_List_0 != 'null') {
Reverse_List_0 = ', "reverse": "' + Reverse_List_0 + '"'; Reverse_List_0 = ', "reverse": "' + Reverse_List_0 + '"';
} else Reverse_List_0 = ''; } else Reverse_List_0 = '';
PosString_2 = PosString_2 ? (', "w": '+PosString_2) : ''; PosString_2 = PosString_2 ? (', "w": '+PosString_2) : '';
PosString_3 = PosString_3 ? (', "h": '+PosString_3) : ''; PosString_3 = PosString_3 ? (', "h": '+PosString_3) : '';
var code = '{"type": "drawImage", "image": "'+EvalString_0+'"'+Reverse_List_0+', "x": '+PosString_0+', "y": '+PosString_1+PosString_2+PosString_3+'},\n'; PosString_4 = PosString_4 ? (', "angle": ' + PosString_4) : '';
var code = '{"type": "drawImage", "image": "'+EvalString_0+'"'+Reverse_List_0+', "x": '+PosString_0+', "y": '+PosString_1+PosString_2+PosString_3+PosString_4+'},\n';
return code; return code;
*/; */;
drawImage_1_s drawImage_1_s
: '绘制图片' EvalString '翻转' Reverse_List '裁剪的起点像素' 'x' PosString 'y' PosString '宽' PosString '高' PosString BGNL? : '绘制图片' EvalString '翻转' Reverse_List '裁剪的起点像素' 'x' PosString 'y' PosString '宽' PosString '高' PosString BGNL?
'绘制的起点像素' 'x' PosString 'y' PosString '宽' PosString '高' PosString Newline '绘制的起点像素' 'x' PosString 'y' PosString '宽' PosString '高' PosString '旋转度数' PosString? Newline
/* drawImage_1_s /* drawImage_1_s
tooltip : drawImage绘制图片 tooltip : drawImage绘制图片
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawImage%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9b%be%e7%89%87 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawImage%ef%bc%9a%e7%bb%98%e5%88%b6%e5%9b%be%e7%89%87
default : ["bg.jpg","0","0","32","32","0","0","32","32"] default : ["bg.jpg","null","0","0","32","32","0","0","32","32",""]
colour : this.subColor colour : this.subColor
allImages : ['EvalString_0'] allImages : ['EvalString_0']
previewBlock : true previewBlock : true
if (Reverse_List_0 && Reverse_List_0 != 'null') { if (Reverse_List_0 && Reverse_List_0 != 'null') {
Reverse_List_0 = ', "reverse": "' + Reverse_List_0 + '"'; Reverse_List_0 = ', "reverse": "' + Reverse_List_0 + '"';
} else Reverse_List_0 = ''; } else Reverse_List_0 = '';
PosString_8 = PosString_8 ? (', "angle": ' + PosString_8) : '';
var code = '{"type": "drawImage", "image": "'+EvalString_0+'"'+Reverse_List_0+ var code = '{"type": "drawImage", "image": "'+EvalString_0+'"'+Reverse_List_0+
', "x": '+PosString_0+', "y": '+PosString_1+', "w": '+PosString_2+', "h": '+PosString_3+ ', "x": '+PosString_0+', "y": '+PosString_1+', "w": '+PosString_2+', "h": '+PosString_3+
', "x1": '+PosString_4+', "y1": '+PosString_5+', "w1": '+PosString_6+', "h1": '+PosString_7+'},\n'; ', "x1": '+PosString_4+', "y1": '+PosString_5+', "w1": '+PosString_6+', "h1": '+PosString_7+PosString_8+'},\n';
return code; return code;
*/; */;
@ -2836,7 +2832,7 @@ drawBackground_s
/* drawBackground_s /* drawBackground_s
tooltip : drawBackground绘制背景 tooltip : drawBackground绘制背景
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawBackground%ef%bc%9a%e7%bb%98%e5%88%b6%e8%83%8c%e6%99%af%e5%9b%be helpUrl : https://h5mota.com/games/template/_docs/#/event?id=drawBackground%ef%bc%9a%e7%bb%98%e5%88%b6%e8%83%8c%e6%99%af%e5%9b%be
default : ["winskin.png",null,"0","0","100","100"] default : ["winskin.png","rgba(255,255,255,1)","0","0","100","100"]
colour : this.subColor colour : this.subColor
previewBlock : true previewBlock : true
var colorRe = MotaActionFunctions.pattern.colorRe; var colorRe = MotaActionFunctions.pattern.colorRe;

View File

@ -439,7 +439,7 @@ ActionParser.prototype.parseAction = function() {
case "showTextImage": // 显示图片化文本 case "showTextImage": // 显示图片化文本
data.loc=data.loc||['',''] data.loc=data.loc||['','']
this.next = MotaActionBlocks['showTextImage_s'].xmlText([ this.next = MotaActionBlocks['showTextImage_s'].xmlText([
this.EvalString(data.text),data.code,data.loc[0],data.loc[1],data.lineHeight||1.4,data.opacity,data.time||0,data.async||false,this.next]); this.EvalString(data.text),data.code,data.loc[0],data.loc[1],data.lineHeight||1.4,data.reverse,data.opacity,data.time||0,data.async||false,this.next]);
break; break;
case "moveImage": // 移动图片 case "moveImage": // 移动图片
data.to=data.to||['',''] data.to=data.to||['','']
@ -766,14 +766,9 @@ ActionParser.prototype.parseAction = function() {
]); ]);
break; break;
case "clearMap": // 清除画布 case "clearMap": // 清除画布
if (data.x != null && data.y != null && data.width != null && data.height != null) { this.next = MotaActionBlocks['clearMap_s'].xmlText([
this.next = MotaActionBlocks['clearMap_s'].xmlText([ data.x, data.y, data.width, data.height, this.next
data.x, data.y, data.width, data.height, this.next ]);
]);
}
else {
this.next = MotaActionBlocks['clearMap_1_s'].xmlText([this.next]);
}
break; break;
case "setAttribute": // 设置画布属性 case "setAttribute": // 设置画布属性
data.fillStyle=this.Colour(data.fillStyle); data.fillStyle=this.Colour(data.fillStyle);
@ -805,13 +800,13 @@ ActionParser.prototype.parseAction = function() {
case "fillRect": // 绘制矩形 case "fillRect": // 绘制矩形
data.style = this.Colour(data.style); data.style = this.Colour(data.style);
this.next = MotaActionBlocks['fillRect_s'].xmlText([ this.next = MotaActionBlocks['fillRect_s'].xmlText([
data.x, data.y, data.width, data.height, data.radius, data.style, 'rgba('+data.style+')', this.next data.x, data.y, data.width, data.height, data.radius, data.angle, data.style, 'rgba('+data.style+')', this.next
]); ]);
break; break;
case "strokeRect": // 绘制矩形边框 case "strokeRect": // 绘制矩形边框
data.style = this.Colour(data.style); data.style = this.Colour(data.style);
this.next = MotaActionBlocks['strokeRect_s'].xmlText([ this.next = MotaActionBlocks['strokeRect_s'].xmlText([
data.x, data.y, data.width, data.height, data.radius, data.style, 'rgba('+data.style+')', data.lineWidth, this.next data.x, data.y, data.width, data.height, data.radius, data.angle, data.style, 'rgba('+data.style+')', data.lineWidth, this.next
]); ]);
break; break;
case "drawLine": // 绘制线段 case "drawLine": // 绘制线段
@ -875,12 +870,12 @@ ActionParser.prototype.parseAction = function() {
case "drawImage": // 绘制图片 case "drawImage": // 绘制图片
if (data.x1 != null && data.y1 != null && data.w1 != null && data.h1 != null) { if (data.x1 != null && data.y1 != null && data.w1 != null && data.h1 != null) {
this.next = MotaActionBlocks['drawImage_1_s'].xmlText([ this.next = MotaActionBlocks['drawImage_1_s'].xmlText([
data.image, data.reverse, data.x, data.y, data.w, data.h, data.x1, data.y1, data.w1, data.h1, this.next data.image, data.reverse, data.x, data.y, data.w, data.h, data.x1, data.y1, data.w1, data.h1, data.angle, this.next
]); ]);
} }
else { else {
this.next = MotaActionBlocks['drawImage_s'].xmlText([ this.next = MotaActionBlocks['drawImage_s'].xmlText([
data.image, data.reverse, data.x, data.y, data.w, data.h, this.next data.image, data.reverse, data.x, data.y, data.w, data.h, data.angle, this.next
]); ]);
} }
break; break;

View File

@ -204,7 +204,6 @@ editor_blocklyconfig=(function(){
'UI绘制':[ 'UI绘制':[
MotaActionBlocks['previewUI_s'].xmlText(), MotaActionBlocks['previewUI_s'].xmlText(),
MotaActionBlocks['clearMap_s'].xmlText(), MotaActionBlocks['clearMap_s'].xmlText(),
MotaActionBlocks['clearMap_1_s'].xmlText(),
MotaActionBlocks['setAttribute_s'].xmlText(), MotaActionBlocks['setAttribute_s'].xmlText(),
MotaActionBlocks['fillText_s'].xmlText(), MotaActionBlocks['fillText_s'].xmlText(),
MotaActionBlocks['fillBoldText_s'].xmlText(), MotaActionBlocks['fillBoldText_s'].xmlText(),

View File

@ -52,8 +52,10 @@ editor_table_wrapper = function (editor) {
editor_table.prototype.editGrid = function (showComment, type) { editor_table.prototype.editGrid = function (showComment, type) {
var list = []; var list = [];
if (showComment) list.push("<button onclick='editor.table.onCommentBtnClick(this)'>注释</button>"); if (showComment) list.push("<button onclick='editor.table.onCommentBtnClick(this)'>注释</button>");
if (type != 'select' && type != 'checkbox' && type != 'checkboxSet' && type != 'disable') if (type != 'select' && type != 'checkbox' && type != 'checkboxSet' && type != 'popCheckboxSet' && type != 'disable')
list.push("<button onclick='editor.table.onEditBtnClick(this)' style='background-color: #ddf8ff'>编辑</button>"); list.push("<button onclick='editor.table.onEditBtnClick(this)' style='background-color: #ddf8ff'>编辑</button>");
if (type == 'popCheckboxSet')
list.push("<button onclick='editor.table.onEditBtnClick(this)' style='background-color: #ddf8ff'>多选框编辑</button>");
if (type == 'disable') list.push("<button onclick='editor.table.onCopyBtnClick(this)'>复制</button>"); if (type == 'disable') list.push("<button onclick='editor.table.onCopyBtnClick(this)'>复制</button>");
return list.join(' '); return list.join(' ');
} }
@ -290,7 +292,7 @@ editor_table_wrapper = function (editor) {
case 'checkboxSet': case 'checkboxSet':
return editor.table.checkboxSet(thiseval, cobj._checkboxSet.key, cobj._checkboxSet.prefix); return editor.table.checkboxSet(thiseval, cobj._checkboxSet.key, cobj._checkboxSet.prefix);
default: default:
return editor.table.textarea(thiseval, cobj.indent || 0, cobj._type == 'disable' || cobj._type == 'popCheckboxSet'); return editor.table.textarea(thiseval, cobj.indent || 0, cobj._type == 'disable');
} }
} }

View File

@ -1154,13 +1154,15 @@ events.prototype.__precompile_getArray = function () {
"fillArc", "strokeArc", "drawIcon", "drawSelector", "drawBackground", "fillArc", "strokeArc", "drawIcon", "drawSelector", "drawBackground",
]; ];
var others = { var others = {
"fillEllipse": ["a", "b"], "fillEllipse": ["a", "b", "angle"],
"strokeEllipse": ["a", "b"], "strokeEllipse": ["a", "b", "angle"],
"fillRect": ["radius", "angle"],
"strokeRect": ["radius", "angle"],
"fillArc": ["r", "start", "end"], "fillArc": ["r", "start", "end"],
"strokeArc": ["r", "start", "end"], "strokeArc": ["r", "start", "end"],
"drawLine": ["x1", "y1", "x2", "y2"], "drawLine": ["x1", "y1", "x2", "y2"],
"drawArrow": ["x1", "y1", "x2", "y2"], "drawArrow": ["x1", "y1", "x2", "y2"],
"drawImage": ["x", "y", "w", "h", "x1", "y1", "w1", "h1"], "drawImage": ["x", "y", "w", "h", "x1", "y1", "w1", "h1", "angle"],
"drawTextContent": ["left", "top"], "drawTextContent": ["left", "top"],
}; };
return { return {
@ -1471,8 +1473,11 @@ events.prototype._action_showTextImage = function (data, x, y, prefix) {
var loc = this.__action_getLoc(data.loc, 0, 0, prefix); var loc = this.__action_getLoc(data.loc, 0, 0, prefix);
if (core.isReplaying()) data.time = 0; if (core.isReplaying()) data.time = 0;
data.text = core.replaceText(data.text, prefix); data.text = core.replaceText(data.text, prefix);
var __tmpName = (Math.random()+"_"+Math.random()).replace(/\./g, "") + ".png";
core.material.images.images[__tmpName] = core.ui.textImage(data.text);
this.__action_doAsyncFunc(data.async || data.time == 0, core.showImage, this.__action_doAsyncFunc(data.async || data.time == 0, core.showImage,
data.code, core.ui.textImage(data.text), null, loc, data.opacity, data.time); data.code, __tmpName + (data.reverse || ""), null, loc, data.opacity, data.time);
delete core.material.images.images[__tmpName];
} }
events.prototype._action_hideImage = function (data, x, y, prefix) { events.prototype._action_hideImage = function (data, x, y, prefix) {

View File

@ -126,61 +126,103 @@ ui.prototype._uievent_fillBoldText = function (data) {
} }
////// 在某个canvas上绘制一个矩形 ////// ////// 在某个canvas上绘制一个矩形 //////
ui.prototype.fillRect = function (name, x, y, width, height, style) { ui.prototype.fillRect = function (name, x, y, width, height, style, angle) {
if (style) core.setFillStyle(name, style); if (style) core.setFillStyle(name, style);
var ctx = this.getContextByName(name); var ctx = this.getContextByName(name);
if (ctx) ctx.fillRect(x, y, width, height); if (ctx) {
if (angle) {
ctx.save();
ctx.translate(x + width / 2, y + height / 2);
ctx.rotate(angle);
ctx.translate(-x - width / 2, -y - height / 2);
}
ctx.fillRect(x, y, width, height);
if (angle) {
ctx.restore();
}
}
} }
ui.prototype._uievent_fillRect = function (data) { ui.prototype._uievent_fillRect = function (data) {
this._createUIEvent(); this._createUIEvent();
if (data.radius) { if (data.radius) {
this.fillRoundRect('uievent', core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height), core.calValue(data.radius), data.style); this.fillRoundRect('uievent', core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height),
core.calValue(data.radius), data.style, (core.calValue(data.angle) || 0) * Math.PI / 180);
} else { } else {
this.fillRect('uievent', core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height), data.style); this.fillRect('uievent', core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height),
data.style, (core.calValue(data.angle) || 0) * Math.PI / 180);
} }
} }
////// 在某个canvas上绘制一个矩形的边框 ////// ////// 在某个canvas上绘制一个矩形的边框 //////
ui.prototype.strokeRect = function (name, x, y, width, height, style, lineWidth) { ui.prototype.strokeRect = function (name, x, y, width, height, style, lineWidth, angle) {
if (style) core.setStrokeStyle(name, style); if (style) core.setStrokeStyle(name, style);
if (lineWidth) core.setLineWidth(name, lineWidth); if (lineWidth) core.setLineWidth(name, lineWidth);
var ctx = this.getContextByName(name); var ctx = this.getContextByName(name);
if (ctx) ctx.strokeRect(x, y, width, height); if (ctx) {
if (angle) {
ctx.save();
ctx.translate(x + width / 2, y + height / 2);
ctx.rotate(angle);
ctx.translate(-x - width / 2, -y - height / 2);
}
ctx.strokeRect(x, y, width, height);
if (angle) {
ctx.restore();
}
}
} }
ui.prototype._uievent_strokeRect = function (data) { ui.prototype._uievent_strokeRect = function (data) {
this._createUIEvent(); this._createUIEvent();
if (data.radius) { if (data.radius) {
this.strokeRoundRect('uievent', core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height), this.strokeRoundRect('uievent', core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height),
core.calValue(data.radius), data.style, data.lineWidth); core.calValue(data.radius), data.style, data.lineWidth, (core.calValue(data.angle) || 0) * Math.PI / 180);
} else { } else {
this.strokeRect('uievent', core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height), data.style, data.lineWidth); this.strokeRect('uievent', core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height),
data.style, data.lineWidth, (core.calValue(data.angle) || 0) * Math.PI / 180);
} }
} }
////// 在某个canvas上绘制一个圆角矩形 ////// ////// 在某个canvas上绘制一个圆角矩形 //////
ui.prototype.fillRoundRect = function (name, x, y, width, height, radius, style) { ui.prototype.fillRoundRect = function (name, x, y, width, height, radius, style, angle) {
if (style) core.setFillStyle(name, style); if (style) core.setFillStyle(name, style);
var ctx = this.getContextByName(name); var ctx = this.getContextByName(name);
if (ctx) { if (ctx) {
if (angle) {
ctx.save();
ctx.translate(x + width / 2, y + height / 2);
ctx.rotate(angle);
ctx.translate(-x - width / 2, -y - height / 2);
}
this._roundRect_buildPath(ctx, x, y, width, height, radius); this._roundRect_buildPath(ctx, x, y, width, height, radius);
ctx.fill(); ctx.fill();
if (angle) {
ctx.restore();
}
} }
} }
////// 在某个canvas上绘制一个圆角矩形的边框 ////// ////// 在某个canvas上绘制一个圆角矩形的边框 //////
ui.prototype.strokeRoundRect = function (name, x, y, width, height, radius, style, lineWidth) { ui.prototype.strokeRoundRect = function (name, x, y, width, height, radius, style, lineWidth, angle) {
if (style) core.setStrokeStyle(name, style); if (style) core.setStrokeStyle(name, style);
if (lineWidth) core.setLineWidth(name, lineWidth); if (lineWidth) core.setLineWidth(name, lineWidth);
var ctx = this.getContextByName(name); var ctx = this.getContextByName(name);
if (ctx) { if (ctx) {
if (angle) {
ctx.save();
ctx.translate(x + width / 2, y + height / 2);
ctx.rotate(angle);
ctx.translate(-x - width / 2, -y - height / 2);
}
this._roundRect_buildPath(ctx, x, y, width, height, radius); this._roundRect_buildPath(ctx, x, y, width, height, radius);
ctx.stroke(); ctx.stroke();
if (angle) {
ctx.restore();
}
} }
} }
ui.prototype._roundRect_buildPath = function (ctx, x, y, width, height, radius) { ui.prototype._roundRect_buildPath = function (ctx, x, y, width, height, radius) {
ctx.beginPath(); ctx.beginPath();
ctx.moveTo(x + radius, y); ctx.moveTo(x + radius, y);
@ -504,7 +546,7 @@ ui.prototype.splitLines = function (name, text, maxWidth, font) {
} }
////// 绘制一张图片 ////// ////// 绘制一张图片 //////
ui.prototype.drawImage = function (name, image, x, y, w, h, x1, y1, w1, h1) { ui.prototype.drawImage = function (name, image, x, y, w, h, x1, y1, w1, h1, angle) {
// 检测文件名以 :x, :y, :o 结尾,表示左右翻转,上下翻转和中心翻转 // 检测文件名以 :x, :y, :o 结尾,表示左右翻转,上下翻转和中心翻转
var ctx = this.getContextByName(name); var ctx = this.getContextByName(name);
if (!ctx) return; if (!ctx) return;
@ -516,7 +558,7 @@ ui.prototype.drawImage = function (name, image, x, y, w, h, x1, y1, w1, h1) {
} }
image = core.getMappedName(image); image = core.getMappedName(image);
image = core.material.images.images[image]; image = core.material.images.images[image];
if (!image || !(image instanceof Image)) return; if (!image) return;
} }
var scale = { var scale = {
@ -533,23 +575,25 @@ ui.prototype.drawImage = function (name, image, x, y, w, h, x1, y1, w1, h1) {
h = image.height; h = image.height;
} }
if (x1 != null && y1 != null && w1 != null && h1 != null) { if (x1 != null && y1 != null && w1 != null && h1 != null) {
if (reverse == null) { if (!reverse && !angle) {
ctx.drawImage(image, x, y, w, h, x1, y1, w1, h1); ctx.drawImage(image, x, y, w, h, x1, y1, w1, h1);
} else { } else {
ctx.save(); ctx.save();
ctx.translate(x1 + w1 / 2, y1 + h1 / 2); ctx.translate(x1 + w1 / 2, y1 + h1 / 2);
ctx.scale(scale[reverse][0], scale[reverse][1]); if (reverse) ctx.scale(scale[reverse][0], scale[reverse][1]);
if (angle) ctx.rotate(angle);
ctx.drawImage(image, x, y, w, h, -w1 / 2, -h1 / 2, w1, h1); ctx.drawImage(image, x, y, w, h, -w1 / 2, -h1 / 2, w1, h1);
ctx.restore(); ctx.restore();
} }
return; return;
} }
if (reverse == null) { if (!reverse && !angle) {
ctx.drawImage(image, x, y, w, h); ctx.drawImage(image, x, y, w, h);
} else { } else {
ctx.save(); ctx.save();
ctx.translate(x + w / 2, y + h / 2); ctx.translate(x + w / 2, y + h / 2);
ctx.scale(scale[reverse][0], scale[reverse][1]); if (reverse) ctx.scale(scale[reverse][0], scale[reverse][1]);
if (angle) ctx.rotate(angle);
ctx.drawImage(image, -w / 2, -h / 2, w, h); ctx.drawImage(image, -w / 2, -h / 2, w, h);
ctx.restore(); ctx.restore();
} }
@ -560,7 +604,7 @@ ui.prototype.drawImage = function (name, image, x, y, w, h, x1, y1, w1, h1) {
ui.prototype._uievent_drawImage = function (data) { ui.prototype._uievent_drawImage = function (data) {
this._createUIEvent(); this._createUIEvent();
this.drawImage('uievent', data.image + (data.reverse || ''), core.calValue(data.x), core.calValue(data.y), core.calValue(data.w), core.calValue(data.h), this.drawImage('uievent', data.image + (data.reverse || ''), core.calValue(data.x), core.calValue(data.y), core.calValue(data.w), core.calValue(data.h),
core.calValue(data.x1), core.calValue(data.y1), core.calValue(data.w1), core.calValue(data.h1)); core.calValue(data.x1), core.calValue(data.y1), core.calValue(data.w1), core.calValue(data.h1), (core.calValue(data.angle) || 0) * Math.PI / 180);
} }
ui.prototype.drawIcon = function (name, id, x, y, w, h, frame) { ui.prototype.drawIcon = function (name, id, x, y, w, h, frame) {

View File

@ -118,7 +118,7 @@ function encode(str) {
} }
function random_string() { function random_string() {
return (Math.random()+"_"+Math.random()+"_"+Math.random()).replace(".", ""); return (Math.random()+"_"+Math.random()).replace(/\./g, "");
} }
// 接档全局属性 // 接档全局属性

View File

@ -71,7 +71,7 @@
(OK) 同步存档合并;(OK) 失去焦点右键;(OK) 竖屏标题界面背景;(OK)商店录像bug (OK) 同步存档合并;(OK) 失去焦点右键;(OK) 竖屏标题界面背景;(OK)商店录像bug
(OK) 右键反复弹出;(OK) 上下楼梯绑定楼传;(OK) 属性框出现0问题(OK) 上下楼点选点 (OK) 右键反复弹出;(OK) 上下楼梯绑定楼传;(OK) 属性框出现0问题(OK) 上下楼点选点
地图编辑框无效;(OK) jumpHero和帧动画冲突bookDetails重复计算buff(OK) 怪物属性多选 地图编辑框无效;(OK) jumpHero和帧动画冲突bookDetails重复计算buff(OK) 怪物属性多选
图片化文本翻转;绘制矩形(边框)旋转; (OK) 图片化文本翻转;(OK) 绘制矩形(边框)旋转;
------------- -------------