스크립트 함수 및 변수
이 문서에서는 스크립트 자산, 함수 및 변수에 대해 자세히 설명합니다. 스크립트 기능을 이해하고 사용하는 방법을 배우겠습니다.
스크립트 자산
- 스크립트 자산은 사용자가 정의한 함수와 변수를 포함하는 코드 조각의 모음입니다.
- 사용자가 작성한 코드 블록이 여러 곳에서 사용될 때, 코드의 모듈화 및 재사용이 가능합니다.
- 코드 변경이 필요할 경우, 스크립트에서 한 번만 수정하면 모든 객체에서 변경 사항이 반영됩니다.
스크립트의 장점
- 코드의 조직화:
- 유사한 기능을 하는 함수들을 그룹화하여 관리할 수 있습니다.
- 예를 들어, 여러 충돌 관련 함수들을
Collision_Functions라는 스크립트에 모아둘 수 있습니다.
함수 생성하기
함수는 다음과 같은 형식으로 생성할 수 있습니다:
function name(parameter1, parameter2, ...){
statement1;
statement2;
}
또는
name = function(parameter1, parameter2, ...){
statement1;
statement2;
}
GML 비주얼에서 함수를 생성할 때는 Declare A New Function을 사용해야 하며, "Temp" 옵션을 활성화하여 메서드 변수를 생성할 수 있습니다.
일반적으로, 첫 번째 형식을 사용하여 스크립트 함수를 정의합니다. 이는 함수가 전역 범위에 있고, 스크립트 인덱스가 할당되며, global 접두사를 필요로 하지 않게 됩니다.
함수 예제
function move(spd, dir){
speed = spd;
direction = dir;
}
위 함수는 두 개의 인자를 받아 인스턴스의 속도와 방향을 설정합니다.
인자(Arguments) 및 매개변수(Parameters)
함수에서 전달된 인자는 argumentN 변수 또는 argument[] 배열로 접근할 수 있습니다.
인자 카운트 확인
function print(){
var _str = "";
for (var i = 0; i < argument_count; i++){
_str += string(argument[i]);
}
show_debug_message(_str);
}
// 호출 예
print("Player :", current_time, ":", id, ":", "fired");
위의 print() 함수는 모든 인자를 루프하여 문자열 변수에 추가하고 출력합니다.
선택적 인자
인자가 제공되지 않을 경우, 값은 undefined가 됩니다. 선택적 인자를 정의하려면 기본값을 설정할 수 있습니다.
function move(spd, dir = 90){
speed = spd;
direction = dir;
}
위 함수에서 dir 인자가 제공되지 않으면 기본값으로 90이 사용됩니다.
반환 값
함수는 값을 반환할 수 있으며, 이를 위해 return 문을 사용합니다.
function sqr_calc(val){
if (!is_real(val)){
return 0;
}
return (val * val);
}
스크립트 이름과 함수 이름
스크립트 이름은 포함된 함수와 독립적이므로, 함수의 목적에 맞게 스크립트 이름을 지을 수 있습니다.
예시
function indirectCall(func, arg){
func(arg);
}
indirectCall(myscript, arg);
위 예시에서 func는 함수가 아닌 스크립트를 호출하게 되어 오류가 발생할 수 있습니다.
스크립트 범위 및 전역 변수
모든 함수는 전역 스코프에서 실행되며, 스크립트의 외부에서 선언된 변수는 전역 변수로 취급됩니다.
global.player_score = 0;
global.player_hp = 100;
이 코드에서 player_score와 player_hp는 전역 변수로 선언되었습니다.
정적 변수
함수는 정적 변수를 사용할 수 있으며, 이는 함수 호출 간 값을 유지합니다.
활용 및 응용 예제
| 함수 기본 정보 | 설명 |
|---|---|
| 함수 미리보기 | 함수의 기본 구조 및 예시 |
| 이용 사례 | 다양한 상황에서의 활용 예시 |
| 선택적 인자 사용 | 인자의 존재 여부에 따라 다른 행동 |
| 인자 카운트 확인 | 함수 인자의 수를 동적으로 확인 |
| 전역 변수 활용 | 전역 변수를 통해 상태 유지하기 |
이와 같은 방식으로 스크립트 함수와 변수를 이용하여 게임 개발에서 코드의 유용성과 효율성을 높일 수 있습니다.