记录白鹭接玩一玩的坑

1.游戏内所有文字往下偏移

这是因为 egret.brick.js 在将 TextField 转为 BKTextField 时计算高度有问题,修改如下:

// 修改前
BKCanvasRenderer.prototype.renderText = function (node, context) {
    ...
    context.fillText(text, x + context.$offsetX, -y + context.$offsetY + node.height);
}
// 修改后
BKCanvasRenderer.prototype.renderText = function (node, context) {
    ...
    context.fillText(text, x + context.$offsetX, -y + context.$offsetY + node.height + context.lineWidth + 2);  // 解决文字整体下移的问题
}

2.WebSocket 无法使用, 增加和修改: scripts/bricks/bricks.ts文件

let key = ''
for (let i = 0; i < jsonData.initial.length;) {
    if (jsonData.initial[i] == 'js/socket.js' || jsonData.initial[i] == 'js/socket.min.js') {
        key = jsonData.initial[i]
        jsonData.initial.splice(i, 1)
        break
    } else {
        i++
    }
}

for (let i = 0; i < jsonData.initial.length; i++) {
    if (jsonData.initial[i] == "js/egret.js" || jsonData.initial[i] == 'js/egret.min.js') {
        jsonData.initial.splice(i + 1, 0, key)
        break
    }
}

let content = '';
content += `BK.Script.loadlib("GameRes://js/promise.js");\n`;
for (let item of jsonData.initial) {
    if (item != 'js/promise.js' && item != 'js/promise.min.js') {
        content += `BK.Script.loadlib("GameRes://${item}");\n`
    }
    if (item == "js/socket.js" || item == 'js/socket.min.js') {
        content += `BK.Script.loadlib("GameRes://egret.bricks.js");\n`
    }
}

3.egret除了默认字体外,其他字体会报错,我从电脑系统中提取字体放入resource文件下导入, 修改egret.bricks.js文件:

//修改前
var path = fontFamily.indexOf("GameRes://") >= 0 || fontFamily.indexOf("GameSandBox://") >= 0 ? fontFamily : "GameRes://" + fontFamily;

//修改后
var path = "GameRes://resource/assets/font/" + fontFamily.toLowerCase() + ".ttf"

猜你喜欢

转载自www.cnblogs.com/H-K-Home/p/10083205.html