GML中的颜色
说起 GameMaker 里的颜色,不知道各位的第一反应是什么,也许是c_white
、c_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_rgb
和 merge_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_white
和c_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 |