|
很多人问起SC2的界面编辑器和对话框使用的长宽数值到底是用什么做单位的。它和当前分辨率的关系又是什么。
鉴于SC2的界面控件的长宽分别只有2种选择(指定数值,或者最大化到父控件)。因此了解长度单位是很有必要的。而且在不同分辨率下界面元素的全屏长宽不同,因此不注重处理方法的话同样会导致在一个分辨率下显示正常的界面,到了另一个分辨率下就是一团乱。
很多人会先入为主地认为长度单位是像素,这当然是不对的。以下说明星际2自定义界面控件的长度计算方法:
为表述方便起见,我们今后就把SC2的界面元素长度单位起名为d,这样可以更明确地和像素进行区分。比如,我用触发器把一张图片的长度参数设为1,那么它的长度就是1d。
SC2界面长度的计算方法有点复杂,但是最简单的记忆方法是记住这一条:
1.不管采用何种分辨率,SC2界面高度总是1200d(除了一个例外)。也就是说,不管你SC2的窗口拉多大或者多小,一张高度设为1200d的图片总是能和它一样高。除了一个特殊的例外,而这个例外会在下文提到。
那么,界面宽度是否也是固定值呢?这是不对的。这也就是关键的地方,这个值和分辨率相关:
2.界面宽度与高度的数值比总是与分辨率宽高比相同。也就是说,如果你的SC2分辨率是4:3,那么界面宽度和高度数值比也是4:3,这很大程度上是为了保证每个界面元素不会因为宽屏分辨率而被拉的很扁。注意,这个值只和分辨率比值相关,在1024x768(4:3)分辨率下,那么整个界面的大小将是1600dx1200d。1280x960(4:3)分辨率下,界面大小还是1600dx1200d。而在1680x1050下(16:10),界面大小为1920dx1200d。因此,在任何分辨率下,SC2界面总宽度=1200d*分辨率宽高比。以下是几种常见宽高比下的SC2界面大小:
- 4:3 - 1600dx1200d
- 16:9 - 2133dx1200d
- 16:10 - 1920dx1200d
要注意的是,以上仅仅是常见标准分辨率。由于SC2是可以窗口化的,因此你可以分辨拉伸长和宽以制造其它各种奇葩分辨率。但是以上规则依然有效。但并不是“任意”分辨率哦,且看下一条。
3.界面宽度数值永远不会小于1600d!这一条非常重要!无论你怎么拉伸界面长宽,你无法令界面宽度下降到1600d以下。这也就是为什么SC2在窗口化以后你可以拉伸窗口的长宽,但是这个窗口的长宽总是存在一个最小值,你无法再缩小它。
那么,有了这一点,再加上面上提到的1200d是界面固定高度,这是否意味着一点,SC2的界面高宽比最小值是4:3,也就是长至少是宽1.33倍呢?hmmm暴雪的设计人员显然是如此希望的,但是事实是世上还存在一种用于老旧显示器奇葩分辨率,而且是暴雪不得不去兼容的。也就是传说中的
只要计算一下就知道,如果高度保持1200d,那么在5:4分辨率下宽度就要变成1500d,而这明显小于1600d这个最小值。因而这个分辨率造成了唯一一个例外:
4.当分辨率小于4:3时,界面高度数值是可以变化的。变化区间在1200d-1280d之间。这一例外完全是为了兼容奇葩的5:4分辨率。1200依然是界面高度的最小值。但是如果你进一步缩短窗口宽度,那么会使得分辨率宽高比进入介于4:3和5:4之间的区间。
这时候,由于第三条规则的影响,界面宽度将一直保持1600d。因而高度数值将等比例增长。要注意,无论你如何调整SC2窗口的长宽,5:4是你能达到的最小值。因此,这导致界面高度即使变化,也不会超过1280d。
为了方便大家记住,专门把这一条作为单独的规则列出:
5.5:4是SC2所允许的最小宽高比,而16:9是最大宽高比。5:4即宽度是高度1.25倍的情况。此时界面大小为1600dx1280d。16:9即1.77倍,此时界面大小为2133dx1200d。也就是说高不能超过1280d,宽不能超过2133d
目前常见的5:4分辨为1280x1024,但是上个世纪这种宽高比则更为常见。比如720×576,hmmm |
|