1. 程式人生 > >記錄白鷺接玩一玩的坑

記錄白鷺接玩一玩的坑

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"