언뜻 보면 상당히 닮아 보이는 게임메이커: 스튜디오(GameMaker: Studio)의 두 가지 변수 선언방법인 var과 globalvar.
이번 강좌에서는 이 둘이 각각 어떨 때 쓰이며 어떤 특징이 있는지 살펴보겠습니다.
1. var
위 코드는 오브젝트를 누르면 랜덤한 숫자를 select라는 변수에 할당하는 코드입니다.
하지만 만약 select라는 변수가 오직 저 Left Released 이벤트에서만 사용된다면 메모리의 낭비겠지요?
이럴 때 select 변수를 var로 선언한다면, 여러분은 메모리를 아낄 수가 있습니다.
왜냐면 var은 어떤 이벤트 혹은 스크립트에서만 유지되는 변수이기 때문이죠.
이렇게 var을 사용하게 되면 일반적으로 선언되는 인스턴스의 변수와는 달리 일회성이 있으므로 깔끔함을 유지할 수 있습니다.
이제 var을 심화해서 생각해봅시다.
만약 인스턴스의 변수 a가 이미 존재하는데, var 변수의 이름도 a라 짓는다면 어떻게 각각 따로 접근할 수 있을까요?
위 코드를 살펴봅시다.
인스턴스의 변수가 a = 10 이라고 했을 때 위 코드를 실행한다면,
첫 번째 show_message는 5를, 두 번째 show_message는 10을 반환하게 됩니다.
즉 인스턴스의 변수는 self라는 명령어를 통해 접근할 수가 있는 것이죠.
아래는 이 블로그에서 var에 대해 작성한 글들입니다.
2. globalvar
globalvar은 var과 모양은 비슷하지만, 하는 일은 전혀 다른 변수입니다.
말하자면 요놈은 전역변수에 global을 붙이기 싫은 사람들을 위해? 만들어진 변수라 할 수 있습니다.
그러니까 하는일은 global 변수와 똑같은데, global 딱지만 없는 변수라는 것입니다.
게임메이커 자체적으로도 globalvar을 사용하는 경우가 있는데, score, health, lives 변수가 바로 그 예입니다.