왕초보
2011.10.04 15:09

라벨 이용하기 (1번째)

LCS
조회 수 2306 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

강의를 보기 전에 참고할 사항이라면 \가 있습니다.

원화 표시로 나와야 하는데 여기서는 슬래시로 나오네요...

원화 표시로 읽어 주시면 감사하겠습니다.

 

가령 \V[0001]은 그 왜 있죠? [0001] 변수를 문장으로 표시하는 명령어 있잖아요. 문장의 표시 이벤트에 넣어 쓸 수 있는거..

\C[2]를 넣으면 그 뒤의 글자는 빨간 색으로 표시되고.. 그런 겁니다.

 

 

이벤트 목록을 보시면


라벨

라벨로 이동


이 2개가 있습니다.

이것에 대해 모르시는 분들 은근히 많은 것 같아서 글을 씁니다.

 


어느 이벤트가 있다고 합시다. 아래와 같습니다.


이벤트 1

★ 변수의 설정 : [0001] = 10

★ 변수의 설정 : [0002] = 2

★ 라벨 : return

★ 조건 분기 : 변수 [0001]이 >= 1 일 경우

  ★ 변수의 설정 : [0002] *= 2

  ★ 변수의 설정 : [0001] -= 1

  분기 종료

★ 문장의 표시 : \V[0002]


이벤트 1에서, 맨 마지막 문장의 표시는 어떤 글을 출력할까요?

여기서 3번째 줄에 있는 라벨 이벤트는 아무런 역할을 하지 못합니다.

마찬가지로, 변수 [0001] 또한, 변수 [0002]에 아무런 영향을 미치지 못하고 있습니다.

여기까지는 이해 되셨나요?


이해 안되신 분들을 위하여...


이벤트 1

★ 변수의 설정 : [0001] = 10 --> 변수 [0001]에 10을 대입했습니다. 현재 [0001]=10

★ 변수의 설정 : [0002] = 2 --> 변수 [0002]에 2를 대입했습니다. 현재 [0002]=2

★ 라벨 : return --> 라벨을 넣었습니다. 이름은 return 으로 했습니다.

★ 조건 분기 : 변수 [0001]이 >= 1 일 경우 --> 현재 변수 [0001]=10이며, 10은 1 이상이므로 조건 분기 내의 이벤트가 실행됩니다.

  ★ 변수의 설정 : [0002] *= 2 --> 변수 [0002]가 2배가 되었습니다. 현재 [0002]=4

  ★ 변수의 설정 : [0001] -= 1 --> 변수 [0001]에서 1을 뺄셈을 하였습니다. 현재 [0001]=9

  분기 종료 --> 조건 분기의 영향력이 끝나는 지점입니다.

★ 문장의 표시 : \V[0002] --> 문장을 이용해 결과를 표시합니다. 현재 [0002]=4 이므로 4가 출력됩니다.


 

이렇게 되어, 결과는 4가 출력됩니다.



 


이제부터가 진짜입니다.

이벤트 1에서 이벤트 달랑 하나가 추가되는데, 그게 얼마나 상황을 뒤집어 버리는지 보게 되실 겁니다.



 


이제 이벤트 2를 생각해 보겠는데요, 이벤트 1에서 하나의 이벤트만 더 추가된 형태입니다.


이벤트 2

★ 변수의 설정 : [0001] = 10

★ 변수의 설정 : [0002] = 2

★ 라벨 : return

★ 조건 분기 : 변수 [0001]이 >= 1 일 경우

  ★ 변수의 설정 : [0002] *= 2

  ★ 변수의 설정 : [0001] -= 1

  ★ 라벨로 이동 : return

  분기 종료

★ 문장의 표시 : \V[0002]


라벨에 대해 아시는 분은 이게 얼마나 큰 효과를 가졌는지 알게 될 겁니다.

라벨은.. 한글과컴퓨터 한글 에서 책갈피 기능을 수행한다고 보면 됩니다.

라벨의 이름은 원하는 대로 만들어도 되지만, 되도록 영어로 띄어쓰기 없이 만드는 것이 좋습니다. (오타 방지를 위해서입니다.)

이렇게 라벨을 달아 놓으면, 나중에 라벨로 쉽게 되돌아 갈 수 있습니다.

 

이벤트 2 의 해설 들어갑니다.


이벤트 2

★ 변수의 설정 : [0001] = 10 --> ①변수 [0001]에 10을 대입합니다. 현재 [0001]=10

★ 변수의 설정 : [0002] = 2 --> ②변수 [0002]에 2를 대입합니다. 현재 [0002]=2

★ 라벨 : return --> ③라벨을 넣었습니다. 이름은 return

★ 조건 분기 : 변수 [0001]이 >= 1 일 경우 --> ④여기서부터가 문제입니다.

  ★ 변수의 설정 : [0002] *= 2

  ★ 변수의 설정 : [0001] -= 1

  ★ 라벨로 이동 : return

  분기 종료

★ 문장의 표시 : \V[0002]


조건 분기에 첫 번째로 도달하였을 때, [0001]의 값은 10으로, 1 이상이므로 조건에 만족하여 조건 분기내의 이벤트가 실행됩니다.


이벤트 2

★ 변수의 설정 : [0001] = 10

★ 변수의 설정 : [0002] = 2

★ 라벨 : return

★ 조건 분기 : 변수 [0001]이 >= 1 일 경우

  ★ 변수의 설정 : [0002] *= 2 --> ⑤ [0002]가 2배가 됩니다. 현재 [0002]=4

  ★ 변수의 설정 : [0001] -= 1 --> ⑥ [0001]에서 1이 뺄셈 됩니다. 현재 [0001]=9

  ★ 라벨로 이동 : return --> ⑦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  분기 종료

★ 문장의 표시 : \V[0002]


위의 "라벨로 이동" 이 어떤 행동일 것 같습니까?

라벨 : return 으로 이동하라는 겁니다.

 

그리하여

 

이벤트 2

★ 변수의 설정 : [0001] = 10

★ 변수의 설정 : [0002] = 2

★ 라벨 : return --> ⑧ 라벨 지정한 장소로 돌아왔습니다. 이름이 return인 라벨은 이 곳밖에 없으니까요.

★ 조건 분기 : 변수 [0001]이 >= 1 일 경우 --> ⑨ 2번째로 도달하는 조건 분기입니다.

  ★ 변수의 설정 : [0002] *= 2

  ★ 변수의 설정 : [0001] -= 1

  ★ 라벨로 이동 : return

  분기 종료

★ 문장의 표시 : \V[0002]


2번째로 조건 분기에 도달했을 때, [0001]=9, [0002]=4 입니다.

조건 분기 내용을 통과하여 다시 라벨로 이동에 도달할 때, [0001]=8, [0002]=8이 될 것입니다.


간단히 보겠습니다.


x=라벨로 이동 지점에 도달한 횟수, y=[0001]의 값, z=[0002]의 값


x,y,z 순서쌍

1,9,4

2,8,8

3,7,16

4,6,32

5,5,64

6,4,128

7,3,256

8,2,512

9,1,1024

10,0,2048

11,x,x --> 11번째에는 라벨로 이동에 도달하지 못합니다. 왜냐하면...


이벤트 2

★ 변수의 설정 : [0001] = 10

★ 변수의 설정 : [0002] = 2

★ 라벨 : return

★ 조건 분기 : 변수 [0001]이 >= 1 일 경우 --> 11번째 조건 분기에 도달했을 때, [0001]=0

  ★ 변수의 설정 : [0002] *= 2

  ★ 변수의 설정 : [0001] -= 1

  ★ 라벨로 이동 : return

  분기 종료

★ 문장의 표시 : \V[0002]


11번째 조건 분기에 도달하게 되면 [0001]=0이며, 이는 조건 분기의 조건에 만족하지 못하여, 조건 분기 내의 이벤트들을 무시하게 됩니다.  다시 말하면, 라벨로 이동 이벤트에 더 이상 도달하지 않게 되는 겁니다.

 

결국 드디어 반복이 끝나고, 결과값이 표시됩니다. 이 때 [0002]=2048 이므로 결과값은 2048이 출력됩니다.



라벨은 이렇게 이벤트의 특정 부분을 반복하는 데 쓰입니다.

거의 대다수가 조건 분기와 같이 쓰고 있습니다.

 

왜냐하면, 실수로라도, 특정 부분이 무한정 반복되도록 작성하게 되면 그건 곧 문제가 되는거거든요. 그대로 게임이 마비되어 버립니다.

그러니, 위와 같이, 특정 조건까지 도달하면 반복이 멈추도록 설계하여야 합니다.

 

또, 라벨 이름 지정 시 신중히 해야 해요.

가령 라벨 이름을 ruin 이라 했는데 라벨로 이동의 이름을 rain 이라 하면, 둘은 전혀 아무런 효과도 내지 못합니다.


 

변수의 조작에 보시면 알겠지만 제곱 항목이 없습니다.

제곱의 연산은 어쩔 수 없이 라벨을 이용해야 합니다.

 

 

다음 강의에는 이를 좀 응용해 보도록 하겠습니다.

 

P.S. 댓글을 달지 않는 행위는 이 세상에서 가장 잔혹한 행위일 지도 모릅니다.

  • ?
    카쿠즈 2011.11.22 18:08

    라벨이 뭔지도 몰랐는데..감사합니다

  • ?
    XP 팬 2011.12.10 08:10

    저두 RPG를 4년간 만들어 오면서 라벨이 뭔지도 몰랐는데 강좌 올려주셔서 감사합니다

  • ?
    키바 2011.12.16 23:13

    아....이제 라벨이 이해됬습니다....감사합니다!

  • ?
    변하지않는어려움 2013.02.25 22:55
    오오미, 자세하고 성의있는 해설 감사드립니다~

List of Articles
분류 제목 조회 수 추천 수
캐릭터/이벤트(NPC) 케릭터 만드는 것 1 844 0
캐릭터/이벤트(NPC) 배틀러 이미지 만드는 방법 657 0
캐릭터/이벤트(NPC) 주인공 캐릭터 변경? 1 2413 1
타이틀 타이틀 로딩 스크립트 2 file 1233 0
캐릭터/이벤트(NPC) RPG XP 비밀번호 만들기 2 (늑대인간님 요청) 528 0
캐릭터/이벤트(NPC) RPG XP 비밀번호 만들기 file 709 0
왕초보 왕초보 질문이요. 1 446 0
왕초보 질문.맵타일 1 795 0
기타 게임을 "종료"하는 방법 file 1420 0
장르변경 탈출게임에 필요한것 3 file 3555 2
액션알피지 칼 휘두르는 모션! 5 file 4545 1
캐릭터/이벤트(NPC) 이벤트를 마칠때 "스위치"와 "일시삭제"기능 file 2592 0
시작하기 시작할때 검게하는것? 1 file 1571 0
액션알피지 엄청나게 멌있고 쉬운 심플알피지! 1 file 2210 0
기타 코즈믹키우기2.5(수정판) 2 file 1516 0
변신 특정한 약을 먹고 변신한후 시간이 지나면 풀리게 하기 3 file 3246 1
출판하기 [제 3강] 게임을 출판하자~ 1 2523 0
타이틀 [제 2강] 타이틀 화면 바꾸기 2 4369 0
여관 [제 1강] 확실하고 간단한(?) 여관 만들기 3 2893 0
기능구현 비밀번호 만들기 7 file 3028 2
무기/방어구 전문기술만들기 4 file 2605 0
캐릭터/이벤트(NPC) 문열고 들어가는 이벤트 3 3083 0
캐릭터/이벤트(NPC) 은행을 만들어 보자(이자와 대출 기능까지) 2 file 2948 6
캐릭터/이벤트(NPC) NPC가 주인공을 따라가게 하기(ysys1292님 요청) file 2615 0
액션알피지 스크립트와 이벤트를 합쳐 어색하지 않은 액션알피지 만들기 1 file 4208 0
오프닝/엔딩 프롤로그를 만들어 보자! 1 file 3752 0
액션알피지 배틀이님께서 부탁하신 액션알피지 간단강좌! 5 2650 0
왕초보 왕초보 강좌 -1 레이어대해서 2304 1
캐릭터/이벤트(NPC) 게임 시작하자 마자 NPC움직이게 하기 랜덤으로 3 file 2610 0
캐릭터/이벤트(NPC) 특정 조건에 의해 나타났다가 시간이 지나면 사라지는 NPC 1 file 3393 0
캐릭터/이벤트(NPC) 아오오니 의자 옮기기 이벤트(흉내낸 거임) 3 file 3737 0
왕초보 대화하기 1 2180 0
왕초보 라벨 이용하기 (2번째, 응용) 1884 0
왕초보 라벨 이용하기 (1번째) 4 2306 0
캐릭터/이벤트(NPC) 밖에 보이는 캐릭터 바꾸기 1 2853 0
이벤트 이름 봐꾸기 강좌 그것도 "가" 를 누루면 그대로 가도됨 1 file 2546 0
액션알피지 노르의 엄청 쉬운 액알 강좌.딱 2페이지 1 file 5285 0
애완동물/펫 펫을 진화시키기 2 2770 0
왕초보 (왕초보용) 간단한 NPC 제작 2540 0
조건분기 열쇠가 없으면 못들어가는 문제작 2210 0
변수/난수(랜덤) 변수의 [대입하기]를 쓰는법 file 1862 0
오프닝/엔딩 오프닝을 직접 만들기 6 3742 0
사운드/배경음악 rpg만들기 오니 나올떄소리 1 file 2733 0
여관 간단한 여관제작 1988 0
아이템 아이템을 획득하면 화면에서 아이템이 사라지는 방법 2096 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10

Copyright ⓒ Nioting All Rights Reserved. (since 1999)    개인정보
        

Fatal error: Cannot access property sessionController::$lifetime in /web/old/xe/modules/session/session.controller.php on line 45