•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Game Maker Language

게임 메이커의 고유한 프로그래밍 언어를 말하며, 게임 메이커는 다른 프로그래밍 툴과 다르게 이벤트가 나누어져 있기 때문에 비교적 쉽다.

목차

1. 기본 문법
1.1. 특징
1.2. 변수
1.3. 자료형과 캐스팅
1.3.1. Real to String
1.3.2. String to Real
1.3.3. Boolean to Real, Real to Boolean
1.4. 연산
1.5. 함수
1.5.1. 함수의 정의

1. 기본 문법

1.1. 특징

Delphi를 기반으로 하고 몇몇은 C언어를 차용하여 만들었으며, 타 언어와 다른 점은 아래와 같다.
  • 세미콜론이 필요하지 않다. 가끔 세미콜론을 찍으면 오류가 발생하기도 한다.
  • 오브젝트(Object)와 이벤트(Event)가 있어 하나의 코드에 실행될 조건을 적지 않아도 된다.
  • 자료형에 깐깐하지 않다. 아래에 기술한다.

1.2. 변수

변수는 다음과 같이 선언한다. 선언을 할 때에는 무조건 Create 이벤트에 선언을 해야 한다. 자료형은 선언할 필요가 없다.

 var_example = 0; //var_example (실수형) 변수 선언


변수의 값을 수정할 때에는 선언할 때와 같은 형식으로 쓴다.

 var_example = 6; //var_example 변수의 값을 6으로 변경


그 스크립트 안이나 블록(중괄호 사이)에서만 정의되는 임시 변수를 정의할 때에는 변수 이름 앞에 var를 붙인다.

 var var_temp = 1; //임시 변수 정의

1.3. 자료형과 캐스팅

GML의 자료형은 7가지이다.
  • Real: 실수형이다. 타 언어의 int, long, float, double 등을 모두 포함한다.
  • String: 문자형이다.
  • Array: 배열이다.
  • Boolean: 불린형 변수이다.
  • Pointer: 포인터이다.
  • Enum: 상수를 정의하는 열거형 변수이다.
  • Undefined: 값이 정의되지 않은 변수이다.

위 변수들은 다음과 같이 정의한다.

 var_real = 0; //실수형 변수의 정의
 
 var_string = "GML"; //문자형 변수의 정의. 큰 따옴표나 작은 따옴표로 문자형임을 표현한다.
 
 for(i=0;i<10;i++){
     var_arr1[i] = power(i, 2); //1차원 배열의 정의. 크기를 지정해줄 필요가 없다. 괄호 사이엔 index를 써 주며, index는 0 이상인 [[정수]]여야 한다.
 }
 
 for(i=0;i<10;i++){
     for(j=0;j<20;j++){
         var_arr2[i, j] = 20*i + j; //2차원 배열의 정의. 괄호 안에 두 지수를 콤마로 구분하여 표기한다.
     }
 }
 
 var_bool = true; //불린형 변수의 정의.
 
 enum var_enum {
     zero,
     ichi,
     ni,
     go = 5,
     roku,
     shi = 10
 } //Enum형 변수의 정의. enum <variable>{<constant> [=<value>]}의 형식으로 정의한다. 값을 정해주지 않으면 맨 처음 변수는 0부터, 중간 변수는 앞의 변수의 값에 1을 더한 것으로 정의된다. 값이 정해지는 방법은 C 언어와 같다.
 var_shigo = var_enum.go + var_enum.shi; //Enum형의 상수를 불러온다. <variable>.<constant>의 형식으로 쓴다.


선언 시 자료형은 자동으로 정해지고, 함수에서 문자가 들어갈 자리에 수를 넣어도 별 상관이 없으나 자료형을 바꿔주는 것이 보기에 좋다. 이 부분은 AS3.0와 비슷하다.

1.3.1. Real to String

  • string(real) //Real형 변수를 그대로 String형으로 바꾼다.
  • chr(real) //유니코드를 문자로 바꾼다.
  • ansi_char(real) //ANSI를 문자로 바꾼다.

1.3.2. String to Real

  • real(str) //문자형에서 숫자, 음수 부호, 소숫점과 그 이하 부분을 가져온다. 이 외의 문자가 있을 시 오류를 낸다. 이 오류를 방지하려면 string_digits(str)로 문자를 걸러 주는 것이 좋다.
  • ord(char) //char형 변수를 넣으면 유니코드로 변환한다. 입력한 문자의 길이가 1을 넘을 때엔 첫번째 문자의 유니코드를 반환한다.

1.3.3. Boolean to Real, Real to Boolean

불린형 변수를 실수형 변수로 변환할 때에는 true = 1, false = 0으로 변환하며, 그 반대로 변환할 때에는 1 이상일 때 true, 1 미만일 때 false로 변환한다.

1.4. 연산

C언어와 대부분 같다.

 //Create Event
 var_example = '6'; //문자형 변수 정의
 
 //User Event 1
 var_example += 3; //현재 값은 var_example == '63'임. 더해주는 3이 문자형이 아님에도 문자형의 덧셈을 함에 주의하자.
 var_example = real(var_example); //실수화. 현재 값은 var_example == 63임.
 var_example += 'ab'; //현재 값은 var_example == '63ab'임.
 var_example = real(string_digits(var_example)); //'ab'는 사라지고 63만 남음. 현재 값은 var_example == 63임.
 var_example = (var_example == 3); //var_example과 3이 다르므로 false이고, false = 0이므로 현재 값은 var_example == 0임.
 show_message(string(((var_example > 0) || (var_example < 0)) ^^ !(var_example == 0)));
 //(var_example > 0), (var_example < 0), !(var_example == 0)가 모두 false이고, (false || false) ^^(xor) false == false이므로
 //위 코드는 show_message(string(0)), 즉 show_message('0')과 같다. 따라서 메시지로 0을 보여준다.

1.5. 함수

함수는 기본 내장 함수와 사용자 정의 함수가 있는데 이 둘의 사용법은 같다. 기본 내장 함수는 Built-in Function 메뉴에서 볼 수 있다.

인자가 없는 경우에는 함수명 끝에 ();를 붙인다.

 d3d_start();
 d3d_end();


인자가 있는 경우에는 괄호를 열고 콤마로 구분하며 차례대로 인자를 쓴다.

 a = max(1, 9, 4, var_num);
 a += min(6, a);

1.5.1. 함수의 정의

다른 프로그래밍 언어는 코드 맨 위에 선언을 하는데, 게임 메이커는 '스크립트'를 만들어 선언을 한다. 이때 스크립트의 제목이 함수명이 된다. 반환할 값을 지정할 때엔 return <variable>;을 써 준다.

이 문서의 내용 중 전체 또는 일부는 오메가에서 가져왔으며 CC BY-NC-SA 3.0에 따라 이용할 수 있습니다.