색상 및 알파
GameMaker는 화면에 그려지는 색상과 알파를 조작할 수 있는 다양한 기능을 제공합니다. 이러한 기능을 사용하면 색상을 구성 요소로 분리하고, 새로운 색상을 생성하며, 드로우 알파를 조작하여 게임의 다양한 요소들이 어떻게 함께 그려지는지를 변경할 수 있습니다.
색상 상수
다음은 기본 색상으로 사용할 수 있는 상수 목록입니다:
색상 상수 | 색상 10진 값 |
---|---|
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 |
헥사 색상
헥사 값으로 색상을 생성할 수 있으며, 이 값은 다양한 색상 함수와 함께 사용되어 구성 요소 값을 개별적으로 얻을 수 있습니다. 헥사 값은 다음과 같은 형식으로 세 부분으로 나뉩니다: Blue/Green/Red (또는 $BBGGRR). 예를 들어, 연한 파란색/아쿠아 색상을 정의하려면 다음과 같이 사용할 수 있습니다:
col = $FFCC11;
여기서 FF는 파란색 구성 요소, CC는 녹색 구성 요소, 11은 빨간색 구성 요소입니다.
또한 해시 기호(#)로 시작하는 "CSS 색상"을 사용할 수 있습니다. 이는 Red/Green/Blue 형식(또는 #RRGGBB)으로, 더 널리 사용되며 다양한 다른 애플리케이션과 호환됩니다.
col = #11CCFF;
이것은 이전 코드 블록에서 보여준 것과 동일한 색상으로, RR과 BB 값이 형식에 맞게 교환되었습니다.
함수
다음 함수들은 선택한 색상의 구성 색조, 복합 색조, 채도 및 밝기, 알파 및 기타 속성을 얻는 데 사용됩니다:
colour_get_blue
colour_get_green
colour_get_red
colour_get_hue
colour_get_saturation
colour_get_value
draw_get_pixel
draw_get_pixel_ext
draw_get_colour
draw_get_alpha
이러한 함수들은 색상 구성 요소의 원시 입력 값으로부터 색상을 생성하는 데 사용할 수 있습니다:
make_colour_hsv
make_colour_rgb
merge_colour
다음 함수들은 화면에 그리기 위한 다양한 옵션을 설정하는 데 사용됩니다. 여기에는 알파, 색상 및 블렌딩이 포함됩니다:
draw_clear
draw_clear_alpha
draw_set_alpha
draw_set_colour
활용 예제
- 기본 색상 사용하기
gml draw_set_colour(c_red); draw_rectangle(100, 100, 200, 200, false);
- 헥사 색상으로 색상 설정하기
gml draw_set_colour($00FF00); draw_circle(150, 150, 50, false);
- 알파 값 설정하기
gml draw_set_alpha(0.5); draw_rectangle(50, 50, 100, 100, false);
- 색상 구성 요소 얻기
gml var my_colour = c_blue; var red = colour_get_red(my_colour); var green = colour_get_green(my_colour); var blue = colour_get_blue(my_colour);
- 색상 혼합하기
gml var colour1 = c_red; var colour2 = c_blue; var mixed_colour = merge_colour(colour1, colour2, 0.5); draw_set_colour(mixed_colour); draw_rectangle(200, 200, 300, 300, false);