최근 편집
최근 토론
게시판 메인
도구
투표
무작위 문서
스킨 설정
파일 올리기
기타 도구
216.73.216.27
IP
사용자 도구
사용자 설정
로그인
회원 가입
최근 편집
최근 토론
돌아가기
삭제
이동
파일 올리기
GML
(편집)
(불러오기)
(편집 필터 규칙)
[[분류:가져온 문서/오메가]] Game Maker Language 게임 메이커의 고유한 프로그래밍 언어를 말하며, 게임 메이커는 다른 프로그래밍 툴과 다르게 이벤트가 나누어져 있기 때문에 비교적 쉽다. == 기본 문법 == === 특징 === Delphi를 기반으로 하고 몇몇은 [[C언어]]를 차용하여 만들었으며, 타 언어와 다른 점은 아래와 같다. * 세미콜론이 필요하지 않다. 가끔 세미콜론을 찍으면 오류가 발생하기도 한다. * 오브젝트(Object)와 이벤트(Event)가 있어 하나의 코드에 실행될 조건을 적지 않아도 된다. * 각 오브젝트는 다양한 이벤트(생성, 소멸, 충돌, 키 입력 등)에 따라 실행될 코드를 분리하여 작성할 수 있어, 코드의 구조를 직관적으로 파악하고 관리하기 용이하다. * 자료형에 깐깐하지 않다. 아래에 기술한다. === 변수 === 변수는 다음과 같이 선언한다. 선언을 할 때에는 무조건 Create 이벤트에 선언을 해야 한다. 자료형은 선언할 필요가 없다. {{{#!syntax GML var_example = 0; //var_example (실수형) 변수 선언 }}} 변수의 값을 수정할 때에는 선언할 때와 같은 형식으로 쓴다. {{{#!syntax GML var_example = 6; //var_example 변수의 값을 6으로 변경 }}} 그 스크립트 안이나 블록(중괄호 사이)에서만 정의되는 임시 변수를 정의할 때에는 변수 이름 앞에 '''var'''를 붙인다. {{{#!syntax GML var var_temp = 1; //임시 변수 정의 }}} === 자료형과 캐스팅 === GML의 자료형은 7가지이다. * Real: 실수형이다. 타 언어의 int, long, float, double 등을 모두 포함한다. * String: 문자형이다. * Array: 배열이다. * Boolean: 불린형 변수이다. * Pointer: 포인터이다. * Enum: 상수를 정의하는 열거형 변수이다. * Undefined: 값이 정의되지 않은 변수이다. 위 변수들은 다음과 같이 정의한다. {{{#!syntax GML 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와 비슷하다. ==== Real to String ==== * string(real) //Real형 변수를 그대로 String형으로 바꾼다. * chr(real) //유니코드를 문자로 바꾼다. * ansi_char(real) //ANSI를 문자로 바꾼다. ==== String to Real ==== * real(str) //문자형에서 숫자, 음수 부호, 소숫점과 그 이하 부분을 가져온다. 이 외의 문자가 있을 시 오류를 낸다. 이 오류를 방지하려면 string_digits(str)로 문자를 걸러 주는 것이 좋다. * ord(char) //char형 변수를 넣으면 유니코드로 변환한다. 입력한 문자의 길이가 1을 넘을 때엔 첫번째 문자의 유니코드를 반환한다. ==== Boolean to Real, Real to Boolean ==== 불린형 변수를 실수형 변수로 변환할 때에는 true = 1, false = 0으로 변환하며, 그 반대로 변환할 때에는 1 이상일 때 true, 1 미만일 때 false로 변환한다. ===연산=== [[C언어]]와 대부분 같다. {{{#!syntax GML //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을 보여준다. }}} === 함수 === 함수는 기본 내장 함수와 사용자 정의 함수가 있는데 이 둘의 사용법은 같다. 기본 내장 함수는 Built-in Function 메뉴에서 볼 수 있다. 인자가 없는 경우에는 함수명 끝에 ();를 붙인다. {{{#!syntax GML d3d_start(); d3d_end(); }}} 인자가 있는 경우에는 괄호를 열고 콤마로 구분하며 차례대로 인자를 쓴다. {{{#!syntax GML a = max(1, 9, 4, var_num); a += min(6, a); }}} ==== 함수의 정의 ==== 다른 프로그래밍 언어는 코드 맨 위에 선언을 하는데, 게임 메이커는 '스크립트'를 만들어 선언을 한다. 이때 스크립트의 제목이 함수명이 된다. 반환할 값을 지정할 때엔 return <variable>;을 써 준다. [Include(틀:가져옴2,O=오메가, C=[[https://creativecommons.org/licenses/by-nc-sa/3.0/deed.ko|CC BY-NC-SA 3.0]])]
(임시 저장)
(임시 저장 불러오기)
기본값
모나코 에디터
normal
namumark
namumark_beta
macromark
markdown
custom
raw
(↪️)
(💎)
(🛠️)
(추가)
[[분류:가져온 문서/오메가]] Game Maker Language 게임 메이커의 고유한 프로그래밍 언어를 말하며, 게임 메이커는 다른 프로그래밍 툴과 다르게 이벤트가 나누어져 있기 때문에 비교적 쉽다. == 기본 문법 == === 특징 === Delphi를 기반으로 하고 몇몇은 [[C언어]]를 차용하여 만들었으며, 타 언어와 다른 점은 아래와 같다. * 세미콜론이 필요하지 않다. 가끔 세미콜론을 찍으면 오류가 발생하기도 한다. * 오브젝트(Object)와 이벤트(Event)가 있어 하나의 코드에 실행될 조건을 적지 않아도 된다. * 각 오브젝트는 다양한 이벤트(생성, 소멸, 충돌, 키 입력 등)에 따라 실행될 코드를 분리하여 작성할 수 있어, 코드의 구조를 직관적으로 파악하고 관리하기 용이하다. * 자료형에 깐깐하지 않다. 아래에 기술한다. === 변수 === 변수는 다음과 같이 선언한다. 선언을 할 때에는 무조건 Create 이벤트에 선언을 해야 한다. 자료형은 선언할 필요가 없다. {{{#!syntax GML var_example = 0; //var_example (실수형) 변수 선언 }}} 변수의 값을 수정할 때에는 선언할 때와 같은 형식으로 쓴다. {{{#!syntax GML var_example = 6; //var_example 변수의 값을 6으로 변경 }}} 그 스크립트 안이나 블록(중괄호 사이)에서만 정의되는 임시 변수를 정의할 때에는 변수 이름 앞에 '''var'''를 붙인다. {{{#!syntax GML var var_temp = 1; //임시 변수 정의 }}} === 자료형과 캐스팅 === GML의 자료형은 7가지이다. * Real: 실수형이다. 타 언어의 int, long, float, double 등을 모두 포함한다. * String: 문자형이다. * Array: 배열이다. * Boolean: 불린형 변수이다. * Pointer: 포인터이다. * Enum: 상수를 정의하는 열거형 변수이다. * Undefined: 값이 정의되지 않은 변수이다. 위 변수들은 다음과 같이 정의한다. {{{#!syntax GML 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와 비슷하다. ==== Real to String ==== * string(real) //Real형 변수를 그대로 String형으로 바꾼다. * chr(real) //유니코드를 문자로 바꾼다. * ansi_char(real) //ANSI를 문자로 바꾼다. ==== String to Real ==== * real(str) //문자형에서 숫자, 음수 부호, 소숫점과 그 이하 부분을 가져온다. 이 외의 문자가 있을 시 오류를 낸다. 이 오류를 방지하려면 string_digits(str)로 문자를 걸러 주는 것이 좋다. * ord(char) //char형 변수를 넣으면 유니코드로 변환한다. 입력한 문자의 길이가 1을 넘을 때엔 첫번째 문자의 유니코드를 반환한다. ==== Boolean to Real, Real to Boolean ==== 불린형 변수를 실수형 변수로 변환할 때에는 true = 1, false = 0으로 변환하며, 그 반대로 변환할 때에는 1 이상일 때 true, 1 미만일 때 false로 변환한다. ===연산=== [[C언어]]와 대부분 같다. {{{#!syntax GML //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을 보여준다. }}} === 함수 === 함수는 기본 내장 함수와 사용자 정의 함수가 있는데 이 둘의 사용법은 같다. 기본 내장 함수는 Built-in Function 메뉴에서 볼 수 있다. 인자가 없는 경우에는 함수명 끝에 ();를 붙인다. {{{#!syntax GML d3d_start(); d3d_end(); }}} 인자가 있는 경우에는 괄호를 열고 콤마로 구분하며 차례대로 인자를 쓴다. {{{#!syntax GML a = max(1, 9, 4, var_num); a += min(6, a); }}} ==== 함수의 정의 ==== 다른 프로그래밍 언어는 코드 맨 위에 선언을 하는데, 게임 메이커는 '스크립트'를 만들어 선언을 한다. 이때 스크립트의 제목이 함수명이 된다. 반환할 값을 지정할 때엔 return <variable>;을 써 준다. [Include(틀:가져옴2,O=오메가, C=[[https://creativecommons.org/licenses/by-nc-sa/3.0/deed.ko|CC BY-NC-SA 3.0]])]
비로그인 상태입니다. 편집한 내용을 저장하면 지금 접속한 IP가 기록됩니다.
편집을 전송하면 당신은 이 문서의 기여자로서 본인이 작성한 내용이
CC BY 4.0
에 따라 배포되고, 기여한 문서의 하이퍼링크나 URL로 저작자 표시가 충분하다는 것에 동의하는 것입니다.
전송
미리보기