記錄白鷺接玩一玩的坑
阿新 • • 發佈:2018-12-07
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"