[ 변수 ]
필독: "오브젝트 주소값."을 생략하면 "self.", 자신 이라는 주소값이 대입됩니다.
"오브젝트 주소값"에는 "global."나 "other.","self.", "오브젝트 이름", "오브젝트 id"를 쓰실 수 있습니다.
global: 언제 어디서나 접근 가능
other: 충돌 이벤트나 with 문 안에서 쓸 수 있는 주소값
self: 나 자신
변수 선언 또는 값 대입: 주소값.변수 이름 = 값;
변수값 증가: 주소값.변수 이름 += 값; (변수값 조정)
변수값 감소: 주소값.변수 이름 -= 값; (변수값 조정)
변수값 1 증가: 주소값.변수 이름++; (변수값 조정)
변수값 1 감소: 주소값.변수 이름--; (변수값 조정)
변수값 나누기: 주소값.변수 이름 /= 값; (변수값 조정)
변수값 곱하기: 주소값.변수 이름 *= 값; (변수값 조정)
변수값을 비트연산자 이용해서: 주소값.변수 이름 (|, &, \, ^)= 값; (변수값 조정)
변수 배열 선언: 주소값.변수 이름 = 값; 주소값.변수 이름[배열 크기] = 값; //둘다 쓰셔야되염;;
/* 변수 배열은 "[배열 줄 번호]"만 "주소값.변수 이름" 옆에 붙이셔서 사용하시면 됩니다.
그러니까 위에꺼 귀찮아서 똑같이 말 안한다고욧!! */
임시 변수 선언: var 변수 이름 = 값; 또는 var 변수 이름; 변수 이름 = 값;
//임시 변수는 한번만 쓰고 버릴때 씁니다.
//for문에 쓸때도 사용합니다. (ex) for(var 변수 이름 = 값;조건문;변수값 조정){ [코드] }
[ 함수 ] 출처: 게임메이커 도움말
함수는 함수 이름 다음에 0또는 여러 argument를 괄호 사이에 쉼표로 구분하는 양식을 가집니다.
<함수 이름>(<인자1>,<인자2>,...)
함수는 두종류가 있습니다. 첫째, 내장 함수, 게임의 모든 측면을 제어하는 거대한 모음이 있습니다. 둘째, 여러분은 게임에서 스크립트를 정의하여 함수에 사용될 수 있습니다.
함수에 인수가 지정되어 있지 않은 경우에서도, 괄호를 생략해서는 안됩니다. 일부 함수의 값을 반환하여, 표현식에서 사용할 수 있습니다. 그 외는 간단히 명령을 실행하기도 합니다.
참고로 할당값의 왼쪽 편에 함수를 그냥 사용할 수 없습니다. 예를들어, instance_nearest(x,y,obj).speed = 0 로 쓸 수 없습니다. 대신에 (instance_nearest(x,y,obj)).speed = 0 로 써야 합니다.
[ 스크립트 ]
인자: argument0~argument15
값 리턴: return 값;
인자 없어도 허용할 인자(?): argument[0]~argument[15]
사용자가 쓴 인자 개수: argument_count
[ 조건문 ]
"만약에 조건문이 true 라면" 조건문: if (조건문){ [코드] }
"만약에 변수 이름의 값이 이거라면" 조건문:
switch(변수 이름){
case 값:{
[코드]
break;
}
case 또다른값:{
[코드]
break;
}
...
default:{
[코드]
break;
}
}
※중요: case나 default는 생략할 수 있습니다. 하지만 하나는 남겨두셔야됩니다!
[ 반복문 ]
조건문이 true일때 반복하는 문: while(조건문){ [코드] }
조건문이 false일때 한번이라도 반복하는 문: do{ [코드] }until(조건문)
횟수만큼 반복하는 문: repeat(횟수){ [코드] }
변수를 사용해서 반복하는 문: for(변수 이름 = 값;조건문;변수값 조정){ [코드] }
[ 유용한문 ]
break;
만약 for루프, while루프, repeat루프, switch문, 또는 with문 과 같이 사용하면 이것들의 루프 또는 구문을 끝냅니다. 구문 외에 사용하면 그 시점에서 프로그램을 종료합니다. (게임을 종료하는 것은 아닙니다).
continue;
만약 for루프,while루프, repeat루프 또는 with문에 사용하면 루프 또는 구문에 대한 다음 값과 함께 계속 실행되어집니다.
exit;
그 것은 간단하게 스크립트 또는 코드문의 실행을 끝내는 것입니다 (게임의 실행을 종료하는 것은 아닙니다! 게임을 종료하고자 할 때는 game_end(); 함수가 필요합니다).
[ 오브젝트 접근 ]
"(오브젝트 이름 또는 오브젝트 id).변수 이름" 을
[ 변수 ]에 써있는 변수 이름에 쓰시면 됩니다.
with(오브젝트 이름 또는 오브젝트 id){ [코드] }
[ 주석 ]
한줄의 코드를 주석 처리: // [코드]
여러줄의 코드를 주석 처리: /* [코드] */
[ 표현식 ] 출처: 게임메이커 도움말
문법은 실수(예: 3.4), 시작이 $기호(예: $00FFAA), 문자열의 인용부호 ",'(예:'hello'나, “hello”), 또는 더 복잡 구성할수 있습니다. (즉, 문자열의 여러 라인을 실행할 수있습니다!) 예를 들어, 다음과 같은 이진 연산자가 있습니다 (우선 순위대로):
- && || ^^: 논리 연산자 (&& = and, || = or, ^^ = xor)
- << <= == != > >=: 비교 연산자 진(true(1))나 가짜(false(0))를 반환합니다.
- | & ^: 비트 마다의 논리 연산자 (| = 비트 마다의 or, & = 비트 마다의 and, ^ = 비트 마다의 xor)
- << >>: 비트 시프트 연산자 (<< = 시프트 레프트, > > = 시프트 라이트)
- + -: 덧셈, 뺄셈
- * / div mod: 곱셈, 나누기, 정수 나누기, 그리고 나머지
x div y의 값은 x/y를 0의 방향으로 가장 가까운 정수로 반올림합니다.mod는 나머지 연산자로 피연산자로 나누어 나머지를 반환합니다.예를 들어, x mod y=x-(x div y)*y가 됩니다. 다음과 같이 단항 연산자가 있습니다:
- !: true는 false로, false는 true로 반전합니다
- -: 부호를 반전합니다
- ~: 비트를 반전합니다
수치나 변수, 값을 돌려주는 함수를 식에 사용할 수 있습니다. 하위 표현식을 괄호 사이에 삽입될 수도 있습니다. 모든 연산은 실수로 행합니다. 또한 문자열인 경우 +문자열로 연결할 수도 있습니다. (참고로, 특정언어에선, 인수작업을 반대로 연산할 때, 첫번째 인자는 이미 계산되어 결과가 결정되어버립니다.)
예제
여기에 몇 가지의 할당 예문이 있습니다.
{ x = 23; color = $FFAA00; str = 'hello world'; y += 5; x *= y; x = y << 2; x = 23*((2+4) / sin(y)); str = 'hello' + " world"; b = (x < 5) && !(x==2 || x==4);}
지적 및 빠진 내용 받습니다.