我正在开发一个需要以不同宽高比工作的用户界面,16:9,16:10,4:3
这个想法在概念上很简单:一切都以粗略的4:3区域为中心,屏幕这一部分以外的任何东西都有基本的艺术品,所以这样的事情:
(未按比例绘制)
粉色区域代表所有UI对象的位置,蓝色区域只是背景和效果。
诀窍在于可用性,如果我在4:3宽高比环境中传递坐标(0,0)(0,0)将是屏幕的左上角。但是,如果我处于16:9环境(0,0),则需要根据新的宽高比重新规范化,使其处于适当的位置。所以我的问题是:我怎样才能做到这一点?
编辑:为了澄清,这基本上是针对UI系统的,虽然我将上面的比率列为4:3,16:9,16:10,但它应该能够动态调整设置为任何宽高比的值。
编辑2:只是为了添加更多细节:当传递位置时,它们作为当前widht高度的屏幕的百分比传入,所以基本上设置位置x将是:[pos x as part屏幕] * SCREEN_WIDTH,其中屏幕宽度是当前屏幕本身的宽度。
答案 0 :(得分:1)
那么......难道你不能想出一个隐藏差异的抽象层吗?一个想法可能是模拟活动区域周围的“边界”,这将被添加。对于4:3显示,将边框大小设置为0可使活动区域覆盖全屏。
答案 1 :(得分:1)
明显的答案似乎是一个抵消。由于4x3是16x9,因此您希望16x9屏幕左侧和右侧有2x9个频段。因此,X偏移应为(2/16)*宽度。
对于16x10屏幕,因子稍微复杂一点:4x3是13.33x10,因此边缘宽度为1.67,X偏移应为(1.67 / 16)*宽度=(5/48)*宽度。 / p>