GML中的颜色

说起 GameMaker 里的颜色,不知道各位的第一反应是什么,也许是c_whitec_black这些内置的常量,或是相对奇葩的 BGR 格式的 16 进制色值,今天刚好群里有人说到这个事儿,就聊一下当前版本的 GameMaker 中颜色的使用吧。

16 进制色值


16 进制色值是日场经常会用到的格式,很多取色器默认也会吸取 RGB 的 16 进制色值,但以前在 GameMaker 里格式有些差异,需要以$为开头,写成 $BBGGRR,因此如果你手上拿着 RGB 色值需要把前两位和末两位的值对调一下才能正常使用

//正常取色 #11CCFF
//GML 里以前得这么用
col = $FFCC11

不过现在 GameMaker 其实已经支持了正常的 RGB 色值,使用上也采用了#开头标记的 #RRGGBB 格式,所以理论上可以把别处取来的颜色直接丢进 GML 代码中使用了

//正常取色 #11CCFF
//GML 里现在也能这么用
col = #11CCFF

Make/Merge Colour

另外还有两个个人觉得还算实用的函数make_colour_rgbmerge_colour,二者分别可以用 RGB 的数值来生成颜色,和用两个颜色按比例混和生成新的颜色。
先捞一张文档里的示意图

make_colour_rgb(red, green, blue);

只需要把 RGB 三个数值(0-255)分别填入参数即可生成所需的颜色使用,这个数值也算是比较常用的,所以如果没有 16 进制色值的时候也堪一用(当然也有很多色值转换的方法,按需取用)
其实还有一个类似的make_colour_hsv,但个人感觉还是 RGB 色值使用更普遍。
至于merge_colour其实更简单,就是传入两个颜色,然后一个比例,最后会根据参数将两个颜色混和出一个新的颜色来。

merge_colour(col1, col2, amount);

比例为 0 则是第一种颜色,比例为 1 则是第二种颜色,中间值就按比例混和

内置常量

最后,内置的颜色常量其实用的还是挺频繁的,不过可能大多数人都是以c_whitec_black为主,别的颜色就随缘了,其实官方文档里有对照表,最后我就抄一份吧。

常量 颜色 十进值数值
c_aqua 16776960
c_black 0
c_blue 16711680
c_dkgray 4210752
c_fuchsia 16711935
c_gray 8421504
c_green 32768
c_lime 65280
c_ltgray 12632256
c_maroon 128
c_navy 8388608
c_olive 32896
c_orange 4235519
c_purple 8388736
c_red 255
c_silver 12632256
c_teal 8421376
c_white 16777215
c_yellow 65535
2022-08-23 23:15
Comments
Write a Comment