지역 변수 (Local Variables)
## 지역 변수란?
지역 변수는 특정 이벤트나 함수에서만 생성되고, 해당 이벤트나 함수가 끝나면 삭제되는 변수를 의미합니다. 커스텀 함수 내에서 생성된 지역 변수는 그 함수 내에서만 사용할 수 있으며, 함수가 종료되면 메모리에서 사라집니다.
이러한 변수가 필요한 이유는 변수가 메모리를 차지하기 때문입니다. 특정 연산이나 함수에서만 사용할 경우, 필요한 시간만 메모리에 두면 되므로 코드가 깔끔하고 메모리 사용이 최적화됩니다.
## 지역 변수 선언하기
지역 변수를 선언하려면 `var` 연산자를 사용합니다. 사용 예시는 다음과 같습니다:
```gml
var _i, _num, _str;
_i = 0;
_num = 24.5;
_str = "Hello World";
또는 다음과 같이 한 줄로 선언하고 초기화할 수 있습니다:
var _i = 0, _num = 24.5, _str = "Hello World";
모든 지역 변수는 생성된 이벤트나 함수가 종료되면 "잊혀지"며(즉, 메모리에서 제거됨), 다른 인스턴스 변수와 이름이 겹치지 않도록 주의해야 합니다.
지역 변수 사용 예제
지역 변수는 프로그램에서 여러 번 사용되며, 특히 반복문에서 반복 횟수를 세는 데 많이 사용됩니다.
예제 1: 반복문에서 지역 변수 사용하기
var _i = 0;
repeat (10) {
inventory[_i] = 0;
_i += 1;
}
위 코드는 _i라는 지역 변수를 생성하고 이를 사용하여 배열을 초기화합니다.
예제 2: 랜덤 좌표 생성하기
var _x, _y;
_x = x - 32 + irandom(64);
_y = y - 32 + irandom(64);
instance_create_layer(_x, _y, "Effects", obj_blood);
이 예제에서는 _x와 _y라는 지역 변수를 사용하여 랜덤 좌표를 생성하고 인스턴스를 만드는데 사용합니다. 가독성을 높이기 위해 변수를 사용하는 것이 좋습니다.
예제 3: 여러 변수 동시에 선언하기
var a = 10, b = "a text", c = {index: 0, previous: -1};
한 번의 선언으로 여러 변수를 동시에 초기화할 수 있습니다.
다른 인스턴스에서 지역 변수 사용하기
지역 변수는 해당 이벤트나 함수에서만 유효하지만, 다른 인스턴스의 프로퍼티를 변경할 수도 있습니다. 예를 들어:
var num = instance_number(obj_Enemy);
with (obj_Enemy) {
if (num > 10) instance_destroy();
}
위 코드는 num이라는 지역 변수를 사용하여 적 인스턴스의 수에 따라 제거하도록 합니다.
결론
지역 변수는 메모리를 효율적으로 사용하며, 코드의 가독성을 높이는 중요한 기능입니다. 프로그램 내에서 필요할 때 적절히 선언하여 사용하는 것이 좋습니다. 코드 작성 시 지역 변수를 활용하여 깔끔한 코드를 유지하세요.
다음으로, 인스턴스 변수에 대해 알아보겠습니다. ```