우선 답변을 쓰기전에 한소리 올립니다.
아방스님 강좌중에.. 라는 식으로 하면 너무 포괄적인데다가 어떤 부분이 질문내용인지 정확히 알 수 없습니다.
어떤부분을 어떤식으로 했는지 구체적으로 핵심부분만을 질문해주세요.
질문에 성의가 있어야 답변에도 성의가 있겠지요 ^^;
병렬처리에 대한 정의라고까지 할 수는 없지만 설명을 해드리겠습니다.
병렬처리는 초등학교 과학시간에 했던 병렬연결과 직렬연결이라고 보면 쉽습니다.
병렬연결은 다른 건전지들과 사이좋게 전류를 나눠서 보내죠.
병렬처리도 마찬가지입니다.
다른 이벤트들과 나란히 진행할 수 있는 유일한 형식이 바로 병렬처리입니다.
가장 좋은 예가 바로 게이지바입니다.
게이지바는 보통 병렬처리 이벤트를 사용하여 0.1초에서 0.3초 간격으로 계속해서 주인공의 체력을 검사하죠. 검사뿐 아니라 끊임없이 그림의 이동을 사용하여 체력에 알맞게 그림을 좌표로 이동시킵니다.
만약 이걸 병렬로 하지 않고 직렬연결에 해당하는 자동시작으로 해놓았다면, 화면이 그대로 멈춰버립니다. 왜냐하면 그 무엇도 움직일 수 없게 계속해서 주인공의 체력만 검사하기 때문이죠.
즉 말하자면, 이벤트를 실행하면서도 동시에 다른 이벤트나 화면이 움직일 수 있게 하는 것이 병렬조건입니다.
질문하신 내용은 병렬에 대한 이해가 부족하다기 보다는 이벤트 운용능력에서의 미스라고 생각되네요. 병렬처리가 문제인게 아니라 이벤트가 계속 반복되는걸 어떻게 없애느냐.. 를 물은 것 같습니다.
이벤트 처리, 일시삭제로는 안된다고 하셨는데.. 이벤트 일시삭제로 안된다는건 강의를 안봐서인지 이해가 안되는군요. 일시 삭제는 그 부분의 내용을 맵에서 아예 삭제해 버리는 것이라 한번 삭제했다면 장소이동을 시키지 않고서야 맵에서 다시 등장할 수가 없을텐데요..
뭐, 각설하고..
자동실행형(병렬포함) 이벤트의 무한반복을 제거하는데에는 크게 두가지 방법이 있습니다. (루프를 돈다고 하셨는데 그건 절대 안쓰이는 방법입니다. 병렬로 쓸데없이 루프를 돌리는건 저사양에서는 렉의 이유입니다. 루프에 대한 설명은 밑에 따로 올립니다.)
1. 이벤트 한번 실행 후 새 페이지로 이동
2. 이벤트 한번 실행 후 이벤트 삭제
1. 이벤트의 속성중 알아둬야 할 것이 상위 페이지에 더 우선순위가 있다는 것입니다. 둘다 자동실행일 때 1페이지에 문장 "가"가 있고 2페이지에 문장 "나"가 있다면, 실행시 "나"라고만 줄창 나온다는 뜻입니다.
즉 이벤트로 한번 실행 시킨 후 셀프스위치등을 사용하여 2페이지로 돌려버리는 방법입니다. 돌리려면 2페이지 발동조건에 셀프스위치를 체크하면 되는 간단한 방법입니다.
2. 이벤트 실행 후 삭제는 1회용 맵에서 사용되는 방법입니다.
이벤트 끝에 이벤트 삭제를 넣어주면 내용을 한번 실행 후 이벤트는 더이상 실행되지 않습니다. 그러나 다른 맵에서 다시 올경우 이벤트가 되살아나기 때문에 셀프스위치가 등장한 이유로는 사실상 이벤트의 삭제는 거의 쓰이지 않는다고 봐도 무방하긴 합니다... (애초에 1회용 맵이라는 것도 별로 없고..)
이 두가지 방법중 하나를 사용하면 됩니다.
루프에 대한 설명 올립니다.
루프는 프로그래밍 언어에서는 loop 로 쓰일겁니다. if 문은 조건문으로 조건분기에 해당하며 루프와는 관계가 없는걸로 압니다.
루프는 우리나라 말로 바꾸면 "반복"입니다. 실제로 rxp버전 이하에는 반복이라고 번역되어 왔구요..
루프는 일정한 시간동안 계속 일정한 부분을 돌리는 명령인데, 이런식으로 씁니다.
루프
1초 대기
변수 +1
조건분기 : 변수가 20일 경우
루프 종료
조건분기 끝
루프 끝
문장 "ABCD"
이렇게 쓰면 20초후에 문장 ABCD가 나옵니다. 대충 예시를 적어놨으니 어떤식으로 쓰인다는 건지는 알게 될 것 같네요. 이 루프는 보통 병렬과 함꼐 쓰이는게 보통이라 저사양 컴퓨터에서는 렉을 초래할 수 있습니다.
사실 이 루프는 복잡한 시스템을 만들때나 쓰는 것이라- 아마도 별로 관심을 갖지 않으셔도 될겁니다. 그럼 부족한게 있으면 댓글로 질문주세요.