중급강의실
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 7381 1
132 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 15화 상자와 아이템 3 file 작긔 2015.12.25 2801 1
131 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 5화 스위치 작긔 2015.12.22 2120 1
130 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 4화 탈것과 이동중 대화하는법 작긔 2015.12.22 2256 1
129 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 3화 맵이동과 케릭터 모션 2 작긔 2015.12.22 3262 1
128 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 2화 이벤트와 대화창 1 작긔 2015.12.22 2803 1
127 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 1화 맵칩 불러오기 4 작긔 2015.12.22 5590 1
126 고급강의실 [RPG MV] 타이틀 메뉴 일부 없애기 9 박야옹 2015.12.20 3699 1
125 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 17화 글자 입력 퍼즐 7 file 작긔 2015.12.28 2429 1
124 고급강의실 타이틀에 동영상을 넣는 플러그인 사용법 5 file 러닝은빛 2016.01.08 2587 1
123 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 19화 전투시스템 2 file 작긔 2016.01.12 2628 1
122 고급강의실 RPG Maker MV 메모리 누수 문제 해결법 6 러닝은빛 2016.01.07 4738 1
121 중급강의실 찰드 제작강의 "3" -툴의 완벽한 이해를 위한 그날까지 No.1 1 1 file 찰드 2011.09.02 3057 1
» 중급강의실 [RPG2003] 한단계 도약 : 되풀이 처리 3 A. 미스릴 2011.02.21 2774 1
119 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 18화 적 제작 및 특정지역 전투시스템 5 file 작긔 2015.12.30 1639 1
118 고급강의실 Rpg Maker MV 함수 리스트(공식포럼) 2 plam 2016.01.10 1406 1
117 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 20화 애니메이션 (특수효과) 2 file 작긔 2016.01.13 1694 1
116 초급강의실 [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에. 케이디 2018.09.10 2398 0
115 초급강의실 [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! " file 수성의물 2018.07.01 1644 0
114 초급강의실 [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약 file 이니군 2018.04.25 629 0
113 초급강의실 [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠 file 이니군 2018.04.25 679 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10






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

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