본문 바로가기
GameMaker강좌[GMS2]/GMS2기초강좌

[게임메이커 강좌-기초][GMS2]문자열 조합으로 변수 참조

by 타락카얀 2021. 3. 21.
728x90

 

 

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);
      }

 

 

 

 

 

 

 

 

300x250

댓글