我在大部分开发过程中都将整个UI层(Godot 4,个人项目)构建在一个固定的1280x720内部视口上,直到我决定支持窗口化/超宽屏幕游戏玩法时才意识到问题。每个屏幕的_draw()函数都包含了具体的像素常数和直接的屏幕宽度/高度算术。没有单一的布局抽象来解决这个问题——它需要20多个屏幕的复制粘贴和分叉的绘制代码,每个屏幕都假设16:9的屏幕比率。实际的解决方案是通过扫描模式而不是重写来完成的:grep查找硬编码的分辨率常量,grep查找命名的布局常量,假设16:9,检查每个弹出教程提示的位置(单独的定位系统),并检查每个自动加载的屏幕尺寸缓存。仅执行一次扫描(例如,只查找“1280”)就可能会错过整个类别的错误——我会认为已经完成,调整窗口大小,发现另一个屏幕静悄悄地被破坏。附上的截图是从中间修复时的截图——板子渲染在屏幕外,HUD元素被困在黑色无底洞中。这种债务完全不可见,直到你故意去找它,才能意识到它。因为在实际开发和测试时,你只关注一个屏幕比率,所有东西都看起来正确。