◈글로벌변수와 로컬변수
변수 종류에는 글로벌 변수와 로컬 변수가 있습니다.
먼저 로컬변수는 오브젝트 내에서만 쓰이며, 글로벌 변수는 한번 선언해서 게임이 종료될 때까지 모든 오브젝트,
그리고 다른 룸에서 까지 모든 곳에서 연동됩니다.
로컬 변수는 일반적으로 변수 이름만으로 선언하면 오브젝트 내에서 사용할 수 있습니다.
예)
name='Mark'; rank=1; |
이 로컬 변수는 일반적으로 Create이벤트에서 작성하면 되며, 다른 오브젝트에서도 이 변수를 참조할 수도 있지요.
예를 들어, 이 변수들이 선언된 오브젝트를 'obj_player'라고 하고, 'obj_enemy'에서 이 변수를 참조하여 변경하고자
한다면,
obj_player.name='Overmars'; |
이와 같이 설정하면 됩니다.
그러나 'obj_player' 오브젝트가 없을 때 오류가 생길 수 있으므로,
if instance_exists(obj_player) //룸에 obj_player 오브젝트가 존재하는지 체크 |
이와 같이 instance_exists 함수로 해당 오브젝트가 룸에 있는지 체크해야 인스턴스가 없다는 오류를 방지 할 수
있습니다.
또한 'var'기능을 통하여 하나의 이벤트내에서만 사용할 수 있는 로컬변수를 만들 수도 있습니다.
var name,rank; name='Mark'; rank=1; |
이 변수는 var 변수를 선언한 그 이벤트내에서만 사용가능하며, 다른 이벤트에선 이 변수들을 참조할 수 없습니다.
글로벌 변수는 룸에서 선언한 후, 다른 룸에 이동해서도 선언한 글로벌 변수를 참조할 수 있습니다.
로컬 변수와는 달리 한번만 선언하면 어느 오브젝트건, 다른 룸에서건 이 변수의 값을 변경할 수 있고, 값을
유지시킬 수 있지요.
이 변수의 사용은 간단합니다.
변수 선언시 이름 앞에 'global.'을 붙이면 됩니다.
예)
global.name='Jassica'; global.rank=1; |
글로벌 변수와 로컬 변수는 값을 변동 시킬 수 있지만, 참조할 수 있는 범위가 많이 다른 변수입니다.
또한, 글로벌 변수와 로컬 변수가 변수명이 같더라도 둘의 성격이 전혀 다르기 때문에 전혀 다른 변수로 인식하지요.
변수 참조시 변수명이 같을 때, 흔히 글로벌 변수인지 로컬 변수인지 정확히 대입하지 않는 실수를 하여
오류가 생기기도 합니다.
그렇기 때문에 변수를 참조할 때는 글로벌 변수인지 로컬 변수인지 정확히 확인을 해야 오류를 줄일 수 있습니다.
'GameMaker강좌[GM8] > 기초강좌' 카테고리의 다른 글
[게임메이커강좌-기초]부모 오브젝트(parent) (0) | 2013.04.17 |
---|---|
[게임메이커강좌-기초]오브젝트의 깊이(depth) (1) | 2013.04.16 |
[게임메이커강좌-기초]스프라이트(sprite)및 마스크(mask) (4) | 2013.04.13 |
[게임메이커강좌-기초]오브젝트(object)와 인스턴스(instance) (9) | 2013.04.05 |
[게임메이커강좌-기초]기본 이동대하여 (10) | 2013.02.08 |
댓글