赞 | 35 |
VIP | 0 |
好人卡 | 0 |
积分 | 72 |
经验 | 0 |
最后登录 | 2024-11-16 |
在线时间 | 474 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 7247
- 在线时间
- 474 小时
- 注册时间
- 2021-12-4
- 帖子
- 513
|
Bitmap.prototype.drawText = function(text, x, y, maxWidth, lineHeight, align) {
// [Note] Different browser makes different rendering with
// textBaseline == 'top'. So we use 'alphabetic' here.
const context = this.context;
const alpha = context.globalAlpha;
maxWidth = maxWidth || 0xffffffff;
let tx = x;
let ty = Math.round(y + lineHeight / 2 + this.fontSize * 0.35);
if (align === "center") {
tx += maxWidth / 2;
}
if (align === "right") {
tx += maxWidth;
}
context.save();
context.font = this._makeFontNameText();
context.textAlign = align;
context.textBaseline = "alphabetic";
context.globalAlpha = 1;
if (this.measureTextWidth(text) > maxWidth) { // 新增内容开始
const size = this.fontSize;
this.fontSize = Math.floor(size * maxWidth / this.measureTextWidth(text));
context.font = this._makeFontNameText();
this.fontSize = size;
} // 新增内容结束
this._drawTextOutline(text, tx, ty, maxWidth);
context.globalAlpha = alpha;
this._drawTextBody(text, tx, ty, maxWidth);
context.restore();
this._baseTexture.update();
};
这个函数大概位于rmmz_core.js的第1650到第1700行之间,可以搜索"drawText ="(等号前面有个空格)来找到。
效果图:
|
|