Bevy中基于窗口尺寸的2D加载界面Logo定位问题
计算Logo平移参数的方法
核心逻辑是基于屏幕中心为原点的坐标系统,结合窗口实时宽高与Logo尺寸,推导让Logo固定在屏幕右下角且完全显示的平移值:
关键参数定义
- 窗口实时宽度:
windowWidth(比如窗口化时可能是800,全屏时是1920) - 窗口实时高度:
windowHeight(比如窗口化时可能是600,全屏时是1080) - Logo尺寸:宽=512,高=512,半宽/半高=256
平移量推导(分两种锚点情况)
情况1:平移参数对应Logo的中心坐标
要让Logo完全贴合屏幕右下角且不超出:
- 右边缘对齐:Logo中心X坐标 = 屏幕右边缘X坐标 - Logo半宽 →
windowWidth/2 - 256 - 下边缘对齐:Logo中心Y坐标 = 屏幕下边缘Y坐标 + Logo半高 →
256 - windowHeight/2(原点在中心,向下Y值递减)
最终公式:
translateX = windowWidth / 2 - 256 translateY = 256 - windowHeight / 2
情况2:平移参数对应Logo的左上角坐标
调整公式为:
translateX = windowWidth / 2 - 512 translateY = -(windowHeight / 2) + 512
实现注意点
- 必须实时获取窗口当前宽高(不能用固定全屏分辨率),窗口化或调整大小时重新计算平移量
- 先确认游戏引擎中平移参数对应的是Logo的哪个锚点(中心/左上角/右下角),再匹配对应公式
内容的提问来源于stack exchange,提问作者salmon
相关产品推荐
相关产品推荐

