게임메이커 강좌

콤보라는 것은 뭘까?

여러번 연속으로 행동하는것을 말한다.

하지만 RPG게임에서의 콤보는 대게 연속타격횟수를 뜻한다.

우리는 이 콤보시스템을 구현 해 볼 것이다.

 

왜 그런 눈으로 쳐다보는가?

설마 내가 이정도도 못할거라 생각하나?

아무리 내가 못한다지만 이정도는 할 수 있다

 

---준비물

게임메이커

타임라인에 대한 아주 기본적인 지식

오브젝트와 스프라이트에 대한 기본적인 지식

 

 

그럼 지금부터 간단하고 완벽하게 콤보시스템을 만들어 보자.

이번에도 역시 스샷 없이 설명하겠다.

 

우선 콤보시스템을 위해서는 공격이 필요하겠지?

이전에 썻던 RPG강좌를 보면서 기본적인 것들을 갖추자.

 

그럼 반은 됬다.진짜다 ㅇㅇ.이거 의외로 매우 쉽다.

고럼 오브젝트를 하나 생성 해 주자.이름은 Combo_control

콤보시스템을 컨트롤 해주는 옵젝이다.

이 옵젝의 생성이벤트에 global.combo = 0 이렇게 코드를 넣어준다.

이 코드는 현재 콤보를 0으로 초기화시켜주는 것이다.

 

이젠 몬스터의 피격이벤트를 좀 다뤄보자.

피격이벤트에 global.combo += 1

콤보를 1 더한다.왜?맞았으면 콤보 올라야지 ㅋ

 

그럼 콤보시스템은 여기서 끝이다.

 

 

 

는 물런 풰이크 ㅋ(진짜로 나갈까봐 무서워서 마니 내리지는 못했다)

아직 두가지 작업이 필요하다.

하나는 일정시간이 지나면 콤보를 초기화 해주는 것, 하나는 그 콤보횟수를 표시 해 주는 것.

 

우선 전자의 작업부터 해 보자.

여기서 타임라인이 등장한다.

타임라인을 하나 생성 해 주자.

이름은 Combo_reset

방금 생성한 타임라인을 편집 해 보자.

추가 버튼이 보이는가?(생성인가?혀튼 초록 십자)

거기서 콤보를 초기화하기 적당한 스텝수를 적어주자.

자고로 1초 30스텝이다.

자, 그럼 우리가 적은 스텝수가 왼쪽에 표시되고 액션을 넣을 수 있게 되었다.

우리는 코드액션을 넣고 global.combo = 0

라고 해 주자.콤보를 0으로 다시 초기화 하는 것이다.

 

그리고 방금 몬스터의 피격이벤트를 좀 더 다뤄 보자.

피격이벤트의 global.combo += 1 부분 아래에 이렇게 적어주자.

Combo_control.timeline_index = Combo_reset

Combo_control.timeline_position = 0

Combo_control.timeline_running = true

첫번쨋 줄은 Combo_control인스턴스의 타임라인을 Combo_reset으로 설정하는 것이고,

두번쨋 줄은 Combo_control인스턴스의 타임라인의 현재스텝을 0으로 설정하는 것이다.

세번쨋 줄은 Combo_control인스턴스의 타임라인을 돌아가게 해 주는 것이다.

 

무슨 말인지 이해가 안 간다면----부터 ----까지 설명을 보아라.

---------------------------------------------------------------------------------

타임라인은 쉽게 말하면 알람이벤트의 확장판이다.

알람보다 기능이 많은게 타임라인.알람은 그걸 간소화 해서 인스턴스마다 다르게 쓰도록 한것이라고 보면 된다.

솔직히 말하면 고급과정이 될 수록 알람보다는 타임라인이 쓸 일이 많다.

타임라인은 컨트롤할 수 있는 부분이 알람보다 훨씬 다양하거던 ㅋ

타임라인은 시작하는 순간 0스텝으로 시작한다.

그런데 타임라인을 설정했다고 알아서 돌아가는게 아니라 타임라인러닝을 true로 놔 주어야 한다.(위에 코드 세번째줄 참고)

그래서 타임라인이 돌아가기 시작하면 1스텝마다 스텝이 하나씩 올라가고, 설정한 스텝이 되면 설정한 액션이 실행되는 것이다.

---------------------------------------------------------------------------------

 

자, 그럼 콤보 초기화 부분은 끝 났다.

콤보 표시부분을 해 보자.

Combo_control옵젝의 드로우 이벤트에 가 보자.

거기에 코드를 이렇게 짜 보자.

if not global.combo = 0

{draw_text(0,0,'Combo : '+string(global.combo)}

그대로 해석한다면,

만약 global.combo변수가 0이 아니라면(not을 붙이면 '아니라면'이 된다.)

x좌표0,y좌표0에 'Combo : '+string(global.combo)를 표시한다.

여기서 'Combo : '+string(global.combo)}는 Combo라는 문자 옆에(+는 덧셈도 되지만 문자끼리의 조합도 된다.) string(global.combo)변수를 표시한다.

string()함수는 ()안의 변수를 문자열로 변환시켜서 반환한다.

 

자, 그럼 Combo_control옵젝을 룸에 배치하고 실험 해 보자.

멋있는~ 콤보 시스템이 완성 될 것이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

솔까말 필자는 이거 실험 안 해 봤지렁 ㅋ;

그냥 학원 끝나고 집 가는데 갑자기 떠오른겅미 ㅋ

Who's 개촙포에버

profile

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

Comment '5'
  • ?
    개촙포에버님 축하합니다.^^ 2012.08.11 11:12
    포인트 팡팡!에 당첨되셨습니다.
    개촙포에버님은 2포인트를 보너스로 받으셨습니다.
  • profile
    개촙포에버 2012.08.14 12:10
    내 강좌를 보는건 포팡이 밖에 없습니다 ㅋ;
  • ?
    뽕뿌 2013.02.25 14:27
    저도 지켜보고있습니다.
  • profile
    개촙포에버 2013.02.25 15:12
    지켜보고 있다니 감사합니다 ㅎㄷ
  • ?
    개촙포에버님 축하합니다.^^ 2013.02.25 15:12
    포인트 팡팡!에 당첨되셨습니다.
    개촙포에버님은 15포인트를 보너스로 받으셨습니다.