GAME MAKER 강좌
KAYAN
◈ 지역 변수(Local) 참조
게임메이커에는 변수명을 문자열로 접근할 수 있는 기능이 몇가지 있습니다.
그 기능에 대해 알아봅시다.
아래의 함수들은 오브젝트의 인스턴스에 정의된 변수들을 참조할 수 있습니다.
variable_instance_exists(instance_id, name) : 변수 존재 여부
variable_instance_get(instance_id, name) : 변수값 참조
variable_instance_set(instance_id, name, val) : 변수값 설정
참조 변수명은 문자열로 검색합니다.
예를 들어, 간단하게 아래와 같이 변수가 있을 때,
enemy_data_0="Knight"; enemy_data_1=50; enemy_data_2=-1; ... |
단일 문자열, 또는 문자열 조합으로 접근할 수 있습니다.
"enemy_"+"data"+string(0) "enemy_"+"data"+string(1) "enemy_"+"data"+string(2) ... |
먼저 아래 함수는 지정 인스턴스에 변수가 존재하는지를 확인할 때 사용합니다.
◎ variable_instance_exists(instance_id, name)
instance_id 에는 변수를 검색할 인스턴스 id를 지정하고, name 에는 변수명을 문자열로 지정합니다.
지정 인스턴스에 변수가 존재하면 true(1)을 반환하고, 없으면 false(0)을 반환합니다.
if !(variable_instance_exists(id, "shields")) { shields = 0; } |
다음은 인스턴스에 지정한 변수값을 참조할 수 있는 함수입니다.
◎ variable_instance_get(instance_id, name)
instance_id 에는 변수를 검색할 인스턴스 id를 지정하고, name 에는 변수명을 문자열로 지정합니다.
지정 인스턴스에 변수가 존재하면 변수값을 반환하고, 없으면 undefined을 반환합니다.
이 함수를 사용할 때, 변수가 존재하는 지를 먼저 검사하고, 값을 불러오는 것이 좋습니다.
※ undefined 는 함수 또는 변수가 값을 반환해야 하지만, 올바른 값을 반환할 수
없을 때(예: 정의되지 않은 변수) 반환되는 값입니다.
var ss = 0; if variable_instance_exists(id, "shields") { ss = variable_instance_get(id, "shields"); } |
아래 함수는 인스턴스에 정의된 변수를 문자열로 검색하고, 값을 설정할 수 있습니다.
◎ variable_instance_set(instance_id, name, val)
instance_id 에는 변수를 검색할 인스턴스 id를 지정하고, name 에는 변수명을 문자열로 지정합니다.
그리고 val 에 변수값을 지정하면 됩니다.
변수가 없다면 해당 변수명으로 새로 정의합니다.
이 함수를 사용할 때, 변수가 존재하는지를 먼저 검사하고, 값을 설정하는 것이 좋습니다.
if !(variable_instance_exists(id, "shields")) { variable_instance_set(id, "shields", 0); } |
◈ 전역 변수(Global) 참조
아래의 함수들은 전역 변수(Global 변수)로 정의된 변수들을 참조할 수 있습니다.
참조 변수는 "global." 키워드를 제외한 변수명 문자열로만 검색합니다.
variable_global_exists(name) : 변수 존재 여부
variable_global_get(name) : 변수값 참조
variable_global_set(name, val) : 변수값 설정
먼저 아래 함수는 전역 변수가 존재하는지를 확인할 때 사용합니다.
◎ variable_global_exists(name)
name 에는 전역 변수명을 문자열로 지정합니다.
지정한 전역 변수가 존재하면 true(1)을 반환하고, 없으면 false(0)을 반환합니다.
if !(variable_global_exists("enemy_num")) { global.enemy_num = instance_number(obj_Enemey_Parent); } |
다음은 전역 변수값을 참조할 수 있는 함수입니다.
◎ variable_global_get(name)
name 에는 전역 변수명을 문자열로 지정합니다.
전역 변수가 존재하면 변수값을 반환하고, 없으면 undefined을 반환합니다.
이 함수를 사용할 때, 전역 변수가 존재하는지를 먼저 검사하고, 값을 불러오는 것이 좋습니다.
※ undefined 는 함수 또는 변수가 값을 반환해야 하지만, 올바른 값을 반환할 수
없을 때(예: 정의되지 않은 변수) 반환되는 값입니다.
var ss = -1; if variable_global_exists("enemy_num") { ss = variable_global_get("enemy_num"); } |
아래 함수는 정의된 전역 변수를 문자열로 검색하고, 값을 설정할 수 있습니다.
◎ variable_global_set(name, val)
name 에는 전역 변수명을 문자열로 지정하고, val 에 전역 변수값을 지정하면 됩니다.
변수가 없다면 해당 변수명으로 새로 정의합니다.
이 함수를 사용할 때, 전역 변수가 존재하는지를 먼저 검사하고, 값을 설정하는 것이 좋습니다.
if !variable_global_exists("enemy_num") { variable_global_set("enemy_num", 0); } |
'GameMaker강좌[GMS2] > GMS2기초강좌' 카테고리의 다른 글
[게임메이커 강좌-기초][GMS2] 랜덤값 (0) | 2021.03.27 |
---|---|
[게임메이커 강좌-기초][GMS2] 스크립트 : 사용자 함수 (0) | 2021.03.22 |
[게임메이커 강좌-기초][GMS2]문자열 조합으로 리소스 참조 (0) | 2021.03.20 |
[게임메이커 강좌-기초][GMS2] 사용자 숫자 표시 : 스프라이트 폰트 (1) | 2021.03.19 |
[게임메이커 강좌-기초][GMS2] macro : 매크로 (0) | 2021.03.18 |
댓글