\f drawImage in TextBox
This commit is contained in:
parent
717efe7882
commit
b970002b4f
@ -422,7 +422,7 @@ document.getElementById('blocklyDiv').onmousewheel = function(e){
|
|||||||
var type = args.type;
|
var type = args.type;
|
||||||
if (!type) return false;
|
if (!type) return false;
|
||||||
editor_blockly.id = id_;
|
editor_blockly.id = id_;
|
||||||
codeAreaHL.setValue(input.value.replace(/\\r/g,'\\\\r'));
|
codeAreaHL.setValue(input.value.replace(/\\r/g,'\\\\r').replace(/\\f/,'\\\\f'));
|
||||||
document.getElementById('entryType').value = type;
|
document.getElementById('entryType').value = type;
|
||||||
editor_blockly.parse();
|
editor_blockly.parse();
|
||||||
editor_blockly.show();
|
editor_blockly.show();
|
||||||
|
|||||||
@ -313,6 +313,7 @@ floorId指定的是目标楼层的唯一标识符(ID)。
|
|||||||
- 使用`\b[...]`来制作对话框效果,如`\b[up,3,2]`。
|
- 使用`\b[...]`来制作对话框效果,如`\b[up,3,2]`。
|
||||||
- 使用`\r[...]`来动态修改局部文本的颜色,如`\r[red]`。
|
- 使用`\r[...]`来动态修改局部文本的颜色,如`\r[red]`。
|
||||||
- 使用`${}`来计算一个表达式的值,如`${status:atk+status:def}`。
|
- 使用`${}`来计算一个表达式的值,如`${status:atk+status:def}`。
|
||||||
|
- 使用`\f[...]`来同时插入一张立绘图,如`\f[1.png,100,200]`。
|
||||||
|
|
||||||
从V2.5.2开始,也允许绘制一张头像图在对话框中,只要通过`\t[1.png]`或`\t[标题,1.png]`的写法。
|
从V2.5.2开始,也允许绘制一张头像图在对话框中,只要通过`\t[1.png]`或`\t[标题,1.png]`的写法。
|
||||||
|
|
||||||
|
|||||||
@ -253,6 +253,20 @@
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
从V2.5.3以后,也可以使用`\f[...]`来同时绘制一张图片。
|
||||||
|
|
||||||
|
其基本写法是`\f[图片名,起始x像素,起始y像素]`,或者`\f[图片名,起始x像素,起始y像素,绘制宽度,绘制高度]`。
|
||||||
|
|
||||||
|
需要注意的是,这个图片是绘制在UI层上的,下一个事件执行时即会擦除;同时如果使用了\t的图标动画效果,重叠的地方也会被图标动画给覆盖掉。
|
||||||
|
|
||||||
|
``` js
|
||||||
|
"x,y": [ // 实际执行的事件列表
|
||||||
|
"\t[勇士]\b[up,hero]\f[1.png,100,100]以(100,100)为左上角绘制1.png图片",
|
||||||
|
"\t[hero]\f[1.png,100,100]\f[2.png,300,300]同时绘制了两张图片",
|
||||||
|
"\f[1.png,100,100,300,300]也可以填写宽高,这样会把图片强制进行放缩到指定的宽高值"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
另外值得一提的是,我们是可以在文字中计算一个表达式的值的。只需要将表达式用 `${ }`整个括起来就可以。
|
另外值得一提的是,我们是可以在文字中计算一个表达式的值的。只需要将表达式用 `${ }`整个括起来就可以。
|
||||||
|
|
||||||
``` js
|
``` js
|
||||||
|
|||||||
14
libs/ui.js
14
libs/ui.js
@ -500,6 +500,20 @@ ui.prototype.drawTextBox = function(content, showAll) {
|
|||||||
core.status.boxAnimateObjs = [];
|
core.status.boxAnimateObjs = [];
|
||||||
core.clearMap('ui');
|
core.clearMap('ui');
|
||||||
|
|
||||||
|
// drawImage
|
||||||
|
content = content.replace(/(\f|\\f)\[(.*?)]/g, function (text, sympol, str) {
|
||||||
|
var ss = str.split(",");
|
||||||
|
if (ss.length!=3 && ss.length!=5) return "";
|
||||||
|
var img = core.material.images.images[ss[0]];
|
||||||
|
if (!core.isset(img)) return "";
|
||||||
|
// 绘制
|
||||||
|
if (ss.length==3)
|
||||||
|
core.canvas.ui.drawImage(img, parseFloat(ss[1]), parseFloat(ss[2]));
|
||||||
|
else
|
||||||
|
core.canvas.ui.drawImage(img, 0, 0, img.width, img.height, parseFloat(ss[1]), parseFloat(ss[2]), parseFloat(ss[3]), parseFloat(ss[4]));
|
||||||
|
return "";
|
||||||
|
});
|
||||||
|
|
||||||
var globalFont = core.status.globalAttribute.font;
|
var globalFont = core.status.globalAttribute.font;
|
||||||
var font = textfont + 'px '+globalFont;
|
var font = textfont + 'px '+globalFont;
|
||||||
if (textAttribute.bold) font = "bold "+font;
|
if (textAttribute.bold) font = "bold "+font;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user