게임 만들기: 그리기 및 GUI 이벤트
이 문서는 GML 코드 또는 GML 비주얼을 사용하여 게임 프로젝트를 시작하는 데 도움이 되는 실용적인 예제를 제공합니다. 깊이 있는 설명은 생략하고, 빠르게 시작할 수 있도록 안내합니다. 이 섹션에서는 화면에 텍스트와 이미지를 그리는 방법과 다양한 그리기 이벤트에 대해 설명합니다.
기본 설정
새 프로젝트를 만들고 몇 개의 스프라이트와 객체를 추가하세요. 간단한 흰색 사각형 스프라이트도 사용할 수 있습니다.
기본 그리기 이벤트
객체에 그리기 이벤트를 추가하지 않으면 GameMaker는 기본적으로 스프라이트를 그립니다. 기본 그리기에서 스프라이트의 투명도, 색상 혼합 및 크기를 조정할 수 있습니다.
투명도 변경
투명도는 image_alpha
변수를 사용하여 조정할 수 있습니다. 다음 코드를 사용하여 객체의 투명도를 랜덤하게 설정할 수 있습니다:
var _val = random(1);
image_alpha = _val;
색상 혼합 변경
image_blend
변수를 사용하여 스프라이트의 색상을 혼합할 수 있습니다. 다음 코드를 사용하여 스페이스 키를 누르고 있는 동안 색상을 변경할 수 있습니다:
var _col = choose(c_red, c_green, c_blue, c_yellow, c_fuchsia, c_orange);
image_blend = _col;
크기 변경
스프라이트의 크기는 image_xscale
및 image_yscale
변수를 사용하여 조정할 수 있습니다. 다음 코드를 사용하여 스프라이트의 크기를 주기적으로 변경할 수 있습니다:
timer = timer + 1;
var _val = dsin(timer);
image_xscale = 1 + _val;
image_yscale = 1 + _val;
여러 스프라이트 그리기
여러 스프라이트를 함께 그리려면 그리기 이벤트를 사용해야 합니다. 다음 코드는 두 개의 스프라이트를 함께 그리는 예입니다:
draw_self();
draw_angle = draw_angle + 0.5;
draw_sprite_ext(spr_Two, 0, x, y, 1, 1, draw_angle, c_red, 1);
이 코드는 첫 번째 스프라이트를 그리고 두 번째 스프라이트를 회전하여 그립니다.
텍스트 및 도형 그리기
그리기 이벤트에서 스프라이트 외에도 텍스트나 도형을 그릴 수 있습니다. 다음 코드는 객체의 이름과 번호를 화면에 그리는 예입니다:
draw_self();
draw_set_halign(fa_center);
draw_text(x, y + 32, "My name is " + name);
draw_text(x, y + 48, "My number is " + string(number));
GUI 레이어
GUI 레이어는 고정된 너비와 높이를 가진 특별한 그리기 레이어로, 게임의 정보를 사용자에게 전달하는 데 적합합니다. GUI 레이어에 텍스트와 스프라이트를 그리는 예는 다음과 같습니다:
점수 그리기
draw_set_halign(fa_left);
draw_set_colour(c_yellow);
draw_text(32, 32, "SCORE:");
draw_set_colour(c_white);
var _str = string(player_score);
draw_text_transformed(32, 48, _str, 2, 2, 0);
생명 표시하기
for (var i = 0; i < player_lives; i += 1) {
var _xx = gui_w - 48 - (i * 70);
draw_sprite(spr_Heart, 0, _xx, 48);
}
체력바 그리기
var _xx = display_get_gui_width() / 2;
draw_healthbar(_xx - 50, 24, _xx + 50, 40, player_health, c_black, c_red, c_lime, 0, true, true);
활용 예제
투명도 변경 예제
var _val = random(1);
image_alpha = _val;
색상 혼합 예제
var _col = choose(c_red, c_green, c_blue, c_yellow, c_fuchsia, c_orange);
image_blend = _col;
크기 변경 예제
timer = timer + 1;
var _val = dsin(timer);
image_xscale = 1 + _val;
image_yscale = 1 + _val;
여러 스프라이트 그리기 예제
draw_self();
draw_angle = point_direction(x, y, mouse_x, mouse_y);
draw_sprite_ext(spr_Two, 0, x, y, 1, 1, draw_angle, c_red, 1);
텍스트 그리기 예제
draw_self();
draw_set_halign(fa_center);
draw_text(x, y + 32, "My name is " + name);
draw_text(x, y + 48, "My number is " + string(number));
이 문서에서는 GameMaker에서 그리기 및 GUI 이벤트를 활용하는 방법을 설명했습니다. 다양한 예제를 통해 기본적인 사용법을 익힐 수 있습니다.