새로운 함수 선언하기
이 문서에서는 새로운 사용자 정의 함수를 만드는 방법에 대해 설명합니다. 이러한 함수는 코드 내에서 언제든지 호출할 수 있으며, 내장 GML Visual 액션이나 GML 실행기 함수로 처리되지 않는 작업을 수행하도록 정의됩니다. 이 함수는 전역, 인스턴스, 또는 로컬 범위로 설정할 수 있으며(범위에 대한 자세한 내용은 '변수와 변수 범위'를 참조하십시오), 구조체를 생성하는 생성자로도 사용될 수 있습니다.
함수 선언 사용하기
이 액션을 사용하려면 이벤트나 스크립트에 추가하고, 새 함수에 이름을 지정합니다. 그런 다음 함수가 받을 필수 인수/매개변수를 제공하고, 선택적 인수의 기본값을 설정합니다.
함수가 생성자로 사용될 경우(구조체를 생성하는데 사용됨), Constructor 옵션을 체크하고 나중에 New Struct 액션을 사용해서 이 함수로부터 구조체를 생성해야 합니다. 또한, 함수를 정적(static)으로 플래그할 수 있으며, 이는 이 액션이 실행되는 횟수에 관계없이 함수가 한 번만 정의됨을 의미합니다. 최종적으로 해당 함수가 같은 이벤트 내에서만 사용될 경우, Temp 옵션을 활성화할 수 있습니다.
함수의 이름과 매개변수를 정의한 후, 함수가 호출될 때 실행될 액션을 드래그 앤 드롭으로 추가할 수 있습니다.
액션 문법
| 인수 | 설명 |
|---|---|
| Name | 새 함수의 이름 |
| Argument [+] | 함수에 전달될 수 있는 다양한 인수와 선택적 인수의 기본값 |
| Constructor | 이 함수가 생성자인지 여부 |
| Static | 이 함수가 정적인지 여부 |
| Temp | 함수가 임시인지 여부 (현재 이벤트 내에서만 사용됨) |
예제
확장된 예제 1
아래의 액션 블록은 인스턴스나 스크립트의 Create Event에 넣어, 세 개의 인수인 _x, _y, spd를 가진 새로운 함수 set_vec을 선언합니다. 이러한 인수는 함수 내에서 인스턴스의 방향과 속도를 설정하는 액션에 사용됩니다. 다음과 같이 함수를 호출할 수 있습니다.
set_vec(mouse_x, mouse_y, 5);
위의 예에서 set_vec 함수가 호출되고, 인스턴스의 방향이 마우스의 X/Y 위치를 향하도록 변경되며, 속성이 5로 설정됩니다.
확장된 예제 2
아래의 액션 블록은 인스턴스나 스크립트의 Create Event에 넣어, 네 개의 인수인 _name, _location, _hp, _mana를 가진 새로운 생성자 함수 init_char_struct를 선언합니다. 마지막 두 개의 인수는 기본값으로 100이 지정된 선택적 인수입니다. 이 인수들은 함수가 생성하는 구조체 내에 변수들을 만드는 데 사용됩니다.
var char = init_char_struct("Hero", "Start", 100, 100);
이 함수가 호출되면 새로운 구조체가 반환되고, 구조체는 함수 호출 시 전달된 값으로 각각의 변수인 name, location, hp, mana로 채워집니다.
이 문서에서는 사용자 정의 함수의 구조와 사용법에 대해 설명하였습니다. 이러한 함수들을 통해 보다 복잡한 로직을 구현할 수 있으며, 게임 프로그래밍의 유연성을 높일 수 있습니다.