중급 강좌

[게임메이커 실전]MMORPG를 만들어 보자 - 1 : 기본적인 변수 선언

by 개촙포에버 posted Jun 27, 2012
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

아방스에서 게임메이커를 살리기 위해 열심히 겜메작을 올리고 강좌를 쓰는 개촙포에버가 오늘 돌아왔다.(퍽!)

오늘은 RPG를 만들고싶어하는 초보들에게 한줄기 빛이 되어줄(?) RPG만들기 강좌를 시작해 보겠다.

필자의 강좌는 이제부터 기본적인 기능들을 익힌 상태라는 가정 하에 스샷 없이 글만으로 설명을 하겠다.

 

 

------------------강좌 절취선----------------------------------------------------------------------------------------------------------------------------------

 

1 : 기본적인 변수 선언

MMORPG(대표적인 예로 메이플)의 요는 무엇인가?

바로 캐릭터를 육성하고 강력한 몬스터를 처치하는것이다.

그러기 위해선 HP,MP,EXP,공격력,방어력 등등의 능력치변수와 어떤 무기를 장착하고 있는지 방어구는 어떤 것인지 등등을 판별하는 변수

등이 필요하다.그렇다면 지금부터 이 모든 변수들을 선언 해 보겠다.

 

오브젝트를 하나 만들자.이름은 Var Control이라고 해 보자.

(모든 오브젝트의 이름은 영어로 하는것을 권장한다.그래야 코드에서 오브젝트명을 입력할 때 편하다.)

그리고 그 오브젝트의 생성이벤트에 컨트롤탭에서 코드를 하나 만들자.(변수선언액션을 사용해도 좋다.)

global.HPmax = 원하는 양

global.HP = global.HPmax

global.MPmax = 원하는 양

global.MP = global.MPmax

global.EXPmax = 원하는 양

global.EXP = 0

global.ATK = 원하는 양

global.DEF = 원하는 양

자, 여기서 HPmax와 MPmax변수를 따로 두는 이유는 뭘까?HP를 회복하거나, 표시할 때엔 HP최대치가 얼마인지를 알아야 하기 때문이다.

조금 뜬금없지만 과제를 하나 내겠다. global.HP = global.HPmax 이 부분은 무슨 뜻이며, 왜 있는걸까? 덧글로 답을 적어보자.

한명이라도 답을 맞춘다면 다음 강좌를 쓰겠다.(이 말인즉슨 덧글없으면 다음 강좌 안쓴다는 말이다.)

 

그리고 겜메에 막 입문한 사람들은 global이 생소할 것이다.잠깐 다른 곳으로 새자면..

겜메의 변수에는 로컬 변수와 전역 변수가 있다.

로컬변수는 그냥 변수이름 = 원하는 값 이렇게 선언하면 되지만, 전역변수는 global.변수이름 =  원하는 값

이런형식으로 선언 해 줘야 한다.

로컬과 전역의 차이는?로컬은 그 변수를 선언한 인스턴스내에서만 효과를 발휘하는 변수이고, 전역변수는 특정한 인스턴스만이 아닌

모든 인스턴스에 적용되는 변수이다.

하지만 여기서 헷갈리면 안되는것이 어떤 인스턴스에 HP변수를 선언했다고 하자.그리고 전역변수로global.HP를 선언하면 HP변수를 가진 인스턴스의 HP값은 global.HP값이 되는가?답은 No이다. 로컬변수와 전역변수는 완전히 다른세계에 있다고 이해하면 편하다.

하지만 HP변수를 두번 선언하면 마지막에 선언한 값이 되고, global.HP변수또한 두번 선언하면 마지막에 선언한 값이 된다.

그럼 이것으로 로컬변수와 전역변수 설명을 끝내고 원점으로 돌아가자.

 

이제 HP,MP,EXP,ATK(공격력),DEF(방어력)변수가 모두 선언되었다.

그 다음은 장비를 구분해주는 변수가 필요하겠다.만은 장비에 관한 부분은 CGM,PGM 이 두 카페(네이버 카페이다)

에 수많은 예제가 널려있으니 생략하겠다.(검색어 인벤토리, 장비 등등)

 

이 강좌에선 변수선언부분만을 다루었다.다음강좌에선 플레이어 오브젝트 를 만들어 보겠다.

 

 

 

과제 : global.HP = global.HPmax 이 부분은 무슨 뜻이며, 왜 있는걸까?

Who's 개촙포에버

profile

돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌돌