[네코노벨] 06. 각 객체를 랜덤 좌표에 출력해 보자.

2012. 1. 10. 03:48
반응형

누가 배경좀 그려줘.. ㅡㅜ


네코노벨을 마구마구 건드리다 보면 때때로 '어? 이거 과연 될까?' 하는 식으로
궁금증의 발상이 떠오르고는 한다.

나도 이 글 쓰기 바로 3분전에 떠오른 것이 하나 있는데,
그것이 제목에서 나온 것 처럼
[어떤 개체를 임의의 좌표에 출력시킬 수 있을까]였다.
그러니까 내 말은,
어떤 이름을 가진 개체가 랜덤값으로 여러 자리에 알아서 출력 될 수 있을까 한가 하는 말이다.


.....예를 들자면,
첫 대사를 칠 때 루카 라는 이미지가 x300 y480의 위치에서 출력되었다고 하자.
이제 두번째 대사를 칠 때, 루카는 과연 x300 y480 말고 다른 자리에 출력될 수 있을까?

++

결론적으로 말하면, 가능하다.
아래와 같은 방법으로 말이다. 


                      변수 x = 랜덤(30~500)
                      변수 y = 랜덤(30~380)

                      라벨 이름 {{x}} {{y}} 0 0 0 100 {{캐릭명}}

                      변수 캐릭명 = "루카"
                      대사 게임 만들지 말까?
                      대기

                      변수 x = 랜덤(30~500)
                      변수 y = 랜덤(30~380)
                      라벨 이름 {{x}} {{y}} 0 0 0 100 {{캐릭명}}
                      변수 캐릭명 = "블랑카"
                      대사 괜찮아! 열심히 만들어!!
                      대기

                      변수 x = 랜덤(30~500)
                      변수 y = 랜덤(30~380)
                      라벨 이름 {{x}} {{y}} 0 0 0 100 {{캐릭명}}
                      변수 캐릭명 = "루카"
                      대사 게임 만들지 말까?
                      대기

                      변수 x = 랜덤(30~500)
                      변수 y = 랜덤(30~380)
                      라벨 이름 {{x}} {{y}} 0 0 0 100 {{캐릭명}}
                      변수 캐릭명 = "블랑카"
                      대사 우하아앙 ㅜㅠ
                      대기



여기서 라벨의 속성-즉 인자-를 잘 보면,
일반적으로 변수의 값을 화면에 출력할 때 사용하는 중괄호를
x좌표와 y좌표를 지정해 주는 인자 자리에 사용하고 있다. 
이렇게 되면, x변수에서 지정받은 랜덤값을 {{x}}에 적용 시킬 수 있게 된다.
마찬가지로 y변수에서 지정받은 랜덤값을 {{y}}에 적용시킬 수 있다.

위의 스크립트에 따르면, 매 대사때마다 x변수와 y변수가 정해 지므로,
라벨의 위치 또한 때때로 바뀌게 된다.


__부가__

얼마전에 네코노벨 공식 카페에서 본 글 중에
변수트레거의 기능을 설명해 주는 글을 보았다.
[링크 : http://cafe.naver.com/kernyslab/721] 

이 글에 의하면, 변수트레거의 기능은
지정된 변수가 '등장'하면 정해진 특수 스크립트를 불러오는 기능을 한다고.

예를 들어,
네코노벨로 시장의 물건을 사고 파는 게임을 만들었다고 하고,
이제 나는 그 게임 속에서 당근을 팔았다고 하자.
이때 손님은 나에게 돈을 줄 것이고,
그 돈의 값은 내 '지갑'이라는 변수에 합산이 될 것이다.

이 때 네코노벨의 변수 커멘드는 다음과 같이 쓸 수 있겠지.

변수 지갑 += 손님물건산돈

 
자, 여기서 중요하다.

사실은 '지갑'변수가 발동 되기 전 라인에서 나는
 변수트리거 변수 알림창.txt 이라고 하는 스크립트를 적어 두었던 것이다.
이 함정카드(?)는 이제 '지갑'이라는 변수가 발동 될 때마다 나타나게 된다.
알림창.txt에다가는 새로운 창(이미지)를 띄우고,
그 가운데에 라벨을 출력하여 '얼마 돈 받았어요!!'라고 창이 뜨도록 설정 해 두었다.
따라서, 이제는 돈을 받을 때마다 '얼마 돈 받았어요!!'라는 새 창이 뜨겠지.

변수트레거는 이렇게 사용 한다.



자, 그럼 이 변수 트레거를
오늘의 메인 테크닉과 어떻게 연관 지을 수 있을까? 


+++겁내응용+++

 라벨 이름을 x랜덤 y랜덤으로 해 둔 덕에
임의의 자리에 라벨이 출력 되게 만든 것은 대충 알았다. 
그러나 위의 파란 박스대로 하려고 한다면,
변수x와 변수y를 일일히 다 적어주어야 한다는 귀차니즘이 있다(?!)..

이쯤 되면 눈치 챘겠지만,
이 x변수와 y변수를 랜덤으로 값을 지정하는데는
새로운 txt파일과 변수트리거만 있으면 무척 편리해진다.

아래는 변수트리거를 응용한 방법이다.

                      ========================타이틀.txt=========================

                      변수트리거 캐릭명 변수.txt 첫줄


                      변수 캐릭명 = "루카"

                      라벨 이름 {{x}} {{y}} 0 0 0 100 {{캐릭명}}

                      대사 게임 만들지 말까?

                      대기


                      변수 캐릭명 = "블랑카"

                      라벨 이름 {{x}} {{y}} 0 0 0 100 {{캐릭명}}

                      대사 괜찮아! 열심히 만들어!!

                      대기


                      변수 캐릭명 = "루카"

                      라벨 이름 {{x}} {{y}} 0 0 0 100 {{캐릭명}}

                      대사 게임 만들지 말까?

                      대기


                      변수 캐릭명 = "블랑카"

                      라벨 이름 {{x}} {{y}} 0 0 0 100 {{캐릭명}}

                      대사 우하아앙 ㅜㅠ

                      대기

                      =================================================

                      =========================변수.txt========================

                      변수 x = 랜덤(30~500)

                      변수 y = 랜덤(30~380)

                      =================================================



 '~'

맨 처음 파란 박스와는 좀 다르게,
캐릭명 변수 선언 줄과 라벨 줄의 자리를 바꾸어 주었다.
왜냐하면, 변수트레거로 인해 x변수와 y변수가 바뀐 후에 라벨이 출력 되어야
변수에 따라 임의의 자리에서 출력 될 것이기 때문이다.

만약 라벨이 캐릭명 변수보다 위에 있다면
아마 두번째 라벨은 첫번째 캐릭명 변수트리거 값에 의해 자리를 찾게 될 것이고,
결국 맨 처음 선언되는 라벨은 무조건 0, 0 자리에서 출력되게 될 것이다.



'~'



 
반응형
LIST

BELATED ARTICLES

more