중급강의실
2011.02.21 04:59

[RPG2003] 한단계 도약 : 되풀이 처리

조회 수 2774 추천 수 1 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제

스위치, 변수만 알고 있어도 왠만한 시스템은 다 구현할 수 있습니다.


하지만 시스템이 복잡해질수록 너무 많은 노가다가 들어갑니다.


이런 노가다를 크게 줄일 수 있는 여러가지 기능들이 알만툴에 있습니다.


그것을 다양한 분이 쓸 수 있기를 바라며 강좌를 씁니다 -ㅁ-


 


C++나 RPGXP를 배운 분이라면 while문이나 for문을 알고 있을 것입니다.


아니면 RPGXP에서 loop do라는 문도 있습니다.


이런 것을 반복문이라고 합니다.


일단 이벤트 커맨드에 "되풀이 처리"라는 것이 있습니다.


이것을 이용해서 다음 알고리즘을 만듭시다.


◆반복 처리


   문장의 표시 : 뭐임마 싸우자?


 : 이상 반복


( 이벤트 커맨드에선 되풀이 처리라고 나오지만 실행내용에선 반복 처리로 나옵니다. 신선짱님의


실수인 듯 합니다 )


이러고 테스트 플레이를 실행해서 해당 이벤트를 실행해 봅시다.


뭐임마 싸우자? 가 무한으로 뜰 것입니다.


이것을 "무한 루프'라고 하는데 그건 집어치우고 중요한 것은


반복 처리와 이상 반복의 사이에 끼워져 있는 이벤트들이 연속적으로 실행되고 있다는 사실입니다.


하지만 이 반복은 대부분 언젠가는 중단되야 하겠죠? -_-;;


이벤트 커맨드에서 "되풀이 처리의 중단"이란 커맨드가 있습니다. 이것을 이용해서 다음 알고리즘을


만듭시다.


 


◆반복 처리


   문장의 표시 : 뭐임마 싸우자?


   ◆반복 처리의 중단


 : 이상 반복


( 이벤트 커맨드에선 되풀이 처리 중단이라고 나오지만 실행내용에선 반복 처리로 나옵니다.


신선짱님의 실수인 듯 합니다 )


이렇게 하면 전과는 달리 뭐임마 싸우자?가 1번만 뜨고 더이상은 뜨지 않습니다. 반복이 중단된


것입니다. 다음 알고리즘을 또 만들어 봅시다.


◆반복 처리


   문장의 표시 : 뭐임마


   ◆반복 처리의 중단


   문장의 표시 : 싸우자?


 : 이상 반복


이러면 뭐임마가 뜬다음 싸우자?가 뜨지 않습니다.


"반복처리가 중단" 이후부터 : 이상 반복 까지의 커맨드도 무시한다는 뜻입니다.


이것을 헷갈리지 마시기 바랍니다(저도 쓸때 약간 혼란을 겪었습니다)


되풀이 처리는 일반적으로 두 가지에 쓰입니다(다른 경우에 쓰일 수도 있습니다)


1. 노가다를 줄인다(특히 변수 번호의 변수와 섞어 쓰면 엄청난 효과를 거둘 수 있다)


2. 라벨을 대신한다


일단 노가다를 줄입니다. 주로 이런 이유로 쓰이리라 믿습니다.


만일 1부터 100까지 출력한다면 당신은 이렇게 만들어야 합니다.


◆변수의 조작 : 변수 0001, 가산, 1


◆문장의 표시 : v[1]


◆변수의 조작 : 변수 0001, 가산, 1


◆문장의 표시 : v[1]


◆변수의 조작 : 변수 0001, 가산, 1


◆문장의 표시 : v[1]


...(중략)


◆변수의 조작 : 변수 0001, 가산, 1


◆문장의 표시 : v[1]


고로 당신은


"


◆변수의 조작 : 변수 0001, 가산, 1


◆문장의 표시 : v[1]


"


를 100번이나 써야 한다는 겁니다.


복사 붙여넣기를 하면 되지만 오래 걸리고 내용도 대단히 길어질 뿐 아니라


 도중에 버그가 일어나거나 횟수가 차이나면 수정하기도 어렵습니다 ㅡㅡ;;


이런 비효율적인 알고리즘을 되풀이 처리를 이용하면 효율적으로 만들 수 있습니다.


◆반복 처리


   ◆조건 분기 : 변수 0001이 100보다 크다


      ◆반복 처리의 중단


    : 분기 종료


   ◆변수의 조작 : 변수 0001, 가산, 1


   ◆문장의 표시 : v[1]


 : 이상 반복


진짜 짧아졌죠? 뿐만 아니라 정확성, 효율성은 물론 수정도 쉽게 할 수 있습니다.


좀 더 발전해서 변수 번호의 변수와 병행한다면 진짜 고수분이 될 겁니다.


...


다음으로 라벨을 대신한다니, 이건 무슨 소리인가?


다음은 라벨의 설정으로 만든 "주사위를 다시 굴린다" 시스템입니다.


라벨에 친숙한 분이라면 금방 이해하실 수 있을 겁니다.


 


◆라벨의 설정 : 1번


◆변수의 조작: 0001:아햏, 대입 1~6


◆문장의 표시 : v[1]


◆문장의 표시 : 다시 굴리시겠습니까?


◆선택지의 표시 : 예 / 아니오


◆예의 경우


   ◆지정 라벨의 이동 : 1번


◆아니오의 경우


 : 분기 종료


 


이것을 이렇게 고칠 수 있습니다.


 


◆반복 처리


   ◆변수의 조작: 0001:아햏, 대입 1~6


   ◆문장의 표시 : v[1]


   ◆문장의 표시 : 다시 굴리시겠습니까?


   ◆선택지의 표시 : 예 / 아니오


   ◆예의 경우


   ◆아니오의 경우


      ◆반복 처리의 중단


    : 분기 종료


 : 분기 종료


 


지정 라벨의 처리엔 아무것도 내놓지 않고(그러면 반복한답시고 위에 있는 이벤트부터


다시 시작하니까 라벨의 설정 밑의 이벤트들이 반복 처리 이벤트 안에 있으면 같은


효과가 나는 셈이다.) 지정 라벨의 처리를 안쓸 곳에는 반복 처리의 중단을(돌아가지


않을거니까...) 시킵니다. 그런 원리입니다.


굳이 이렇게 하는 이유는 라벨의 설정 번호에 한계가 있을 수도 있기 때문입니다 -0-;


 


잘 배우셨습니까?
그럼 당신의 실력확인을 위해 문제를 내겠습니다.


◆주인공의 동작 지정 : 주인공, 투명도 업


◆대기 : 0,1초


◆주인공의 동작 지정 : 주인공, 투명도 업


◆대기 : 0,1초


◆주인공의 동작 지정 : 주인공, 투명도 업


◆대기 : 0,1초


◆주인공의 동작 지정 : 주인공, 투명도 업


◆대기 : 0,1초


◆주인공의 동작 지정 : 주인공, 투명도 업


◆대기 : 0,1초


◆주인공의 동작 지정 : 주인공, 투명도 업


◆대기 : 0,1초


◆주인공의 동작 지정 : 주인공, 투명도 업


◆대기 : 0,1초


◆주인공의 동작 지정 : 주인공, 투명도 업


◆대기 : 0,1초


이것을 간단하게 만들어 보십시오


50%라도 이해하셨다면 하실수 있으리라 믿습니다 ㅇㅅㅇ/

?
  • profile
    산신령 2013.01.02 07:11
    이럴땐 전자공학도라는게 참 다행이지요 ㅎㅎ
  • ?
    크리치 2011.02.21 09:55

    머리가 나쁘면 몸이 고생하네요. 이제까지 몸을 얼마나 고생시켰는지가.. 떠오르네요..

  • ?
    Iriaroan。 2011.08.07 19:03

    V[0001] = 0;

    반복{

     주인공 투명도업

     대기 0.1초

     V[0001]++;

     조건분기 V[0001] > 7{

      반복중단

     }

    }


    재미지다 !!!


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 초급강의실 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 7373 1
12 중급강의실 데스티니 패치 연구 1~3 2 1 file 나라뜨 2012.05.05 1137 0
11 중급강의실 찰드 제작강의 "3" -툴의 완벽한 이해를 위한 그날까지 No.1 1 1 file 찰드 2011.09.02 3055 1
10 중급강의실 [RPG2003] 한단계 도약 : 변수 번호의 변수 A. 미스릴 2011.02.22 2678 0
9 중급강의실 [RPG2003] 한단계 도약 : 변수 번호의 스위치 6 A. 미스릴 2011.02.21 2536 0
» 중급강의실 [RPG2003] 한단계 도약 : 되풀이 처리 3 A. 미스릴 2011.02.21 2774 1
7 중급강의실 찰드 도트강의 "1" -케릭터 레이더의 이해 (1/2)- 6 ◈ÐÆЯΚ◈찰드 2009.08.16 6195 4
6 초급강의실 찰드 제작강의 "2" -툴을 처음 접하면- 4 ◈ÐÆЯΚ◈찰드 2008.09.29 5965 7
5 초급강의실 찰드 제작강의 "1" -겜제작을 시작할때- 5 ◈ÐÆЯΚ◈찰드 2008.08.28 6909 5
4 중급강의실 액알강의[1] - 베틀러 비밀소년 2006.08.07 8458 7
3 중급강의실 액알강의[2] - 일어서기위해 비밀소년 2006.07.30 5181 3
2 중급강의실 액알강의[3] - 주석을 통한 설정 1 file 비밀소년 2006.07.21 5329 4
1 중급강의실 캐릭터레이더로 통맵만들기. 3 file 천무 2006.06.05 12285 23
Board Pagination Prev 1 ... 5 6 7 8 9 10 Next
/ 10






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)