프로그래밍 강의/게임메이커 스튜디오

GMS, 스크립트를 사용해보자 -1-

wnsrn3436 2013. 8. 15. 23:03

 

게임메이커: 스튜디오(GameMaker: Studio)에는 Scripts 라는 리소스가 있습니다.

이것은 게임을 제작할 때에 어떤 역할을 해줄까요?

 

 

먼저 게임메이커에 내장된 기본 함수를 살펴봅시다.

위 사진처럼 함수들은 인자와 반환 값으로 이루어져 있습니다.

 

name(인자1, 인자2, 인자3): 변수를 반환

 

이게 기본 베이스인데요, 저런 함수를 사용자가 직접 만들 수 있게 해주는 게 바로 스크립트입니다.

 

-

 

그럼 스크립트는 왜 써야 할까요?

여러분이 a=0; b=0; c=0 과 같은 코드를 사용한다고 생각해봅시다.

 

이 코드를 오브젝트 100개에다가 적어놓았는데, 어느 날 생각해보니 c=0 을 d=0 으로 수정해야 할 일이 생겨버렸습니다.

어이쿠; 그럼 코드를 100번이나 수정해야 하지요?

하지만 스크립트를 사용하면 스크립트 하나를 수정하는 것만으로도 100개의 오브젝트에 적용됩니다.

 

위 사례와 같이 스크립트는 환경에 변화에 매우 유연합니다.

또한, 스크립트를 한 개 만들어두면 언제 어느 때든 코드에서 꺼내쓸 수가 있으니 편리하지요.

 

 

그럼 스크립트 하나를 만들어봅시다.

스크립트 리소스를 만들어보시면 스크립트가 코드창으로 이루어져있는것을 보실 수가 있을것입니다.

 

 

스크립트에 이렇게 작성하고.

 

 

오브젝트 코드에 이렇게 하면 어떤 결과가 나타날까요?

보시는 바와 같이 둘 다 같은 변수의 이름인 a를 다루고 있습니다.

 

 

짜잔! 값은 5가 나왔네요.

여기서 알 수 있듯, 스크립트는 오브젝트의 변수를 끌어다 쓸 수도 있습니다.

 

하지만 오브젝트의 변수를 끌어다 쓸 수가 있다는 것은 단점이 될 수도 있습니다. (for 문의 i 를 생각해보세요.)

어떻게 하면 변수의 이름이 겹치고도 오브젝트의 변수에 영향을 주지 않을 수가 있을까요?

 

 

바로 이때 쓰이는 게 임시 변수를 선언하는 var 명령어인데요,

코드에서 자주 쓰이는 var 명령어를 스크립트에서도 쓸 수가 있습니다.

var 변수를 선언하게 되면 스크립트의 변수와 오브젝트의 변수의 이름이 같아도 각각 독립된 변수로 취급됩니다.

 

(만약 스크립트에서 var 변수를 선언한 뒤에, 같은 이름의 오브젝트 변수를 끌어다 쓰고 싶다면 "self.변수" 명령어를 쓰시면 됩니다.)

 

 

이제 실행시켜보면 변수가 겹치지 않는 것을 보실 수가 있습니다.

 

http://cafe.naver.com/playgm

Comments