[ONScripter] 나는 이렇게 컨버터를 제작했다. #019 타이틀 화면을 만들어 보쟈 강의이야기 | Posted on 2011. 9. 9. 21:43
이번에는 타이틀 화면을 만들어보겠습니다.
시스템파일들중 타이틀화면에 대한 정보가 있는 파일을 찾아서 만들어보겠습니다.
우선 시작을 하게되면 나오는 로고부터 제작을 하겠습니다.
위의 이미지가 이 게임의 로고 표시 부분입니다.
그러면 코딩해보겠습니다.
*logo
;logo라는 이름으로 라벨명을 붙입니다.
bg "image\title_logo.png",2
;로고이미지를 출력합니다.
wait 1000
;로고이미지가 화면에 표시된후 1초를 기다립니다.
bg "image\black.png",2
;화면에 출력된 로고를 지웁니다.
;검정화면을 출력합니다.
wait 1000
다음은 타이틀을 만들어 보겠습니다.
위의 이미지가 타이틀 화면을 표시하는 부분입니다.
올클과 올클전으로 크게 2가지로 나뉘는군요.
일단 그냥 타이틀을 만들어보겠습니다.
if %cm == 1 && %cz == 1 && %cs == 1 goto *actitle
;올클리어 했을경우 actitle라는 라벨로 이동합니다.
*title
;올클 이전의 타이틀
bg "image\title@bg.png",2
;초기 타이틀을 화면에 출력합니다.
wait 1000
bgm "bgm\title.ogg"
;초기 타이틀의 BGM을 재생합니다.
다음은 타이틀 버튼을 만들어 보겠습니다.
위의 이미지가 타이틀 버튼을 나타내는 곳입니다.
이것은 초기, 루트클리어, 올클이냐 아니냐로 나뉩니다.
코딩해보겠습니다.
lsp 1,"image\title@start_0.png",565,220
;처음부터 화면에 출력될 버튼들..
;위의 이미지를 보시면 좌표랑이 전부 나와있습니다.
...
lsp 4,"image\title@exit_0.png",565,430
lsp 5,"image\title@start_1.png",565,220
;마우스커서가 올라갔을때 출력될 이미지들..
...
lsp 8,"image\title@exit_1.png",565,430
*title_btn
exbtn_d "P1P2P3P4C5C6C7C8"
;마우스가 스프라이트에 없을때..
exbtn 1,1,"C1P2P3P4P5C6C7C8"
;마우스가 스프라이트번호 1번위에 올라가있을때의 화면출력..
;1번을 지우고, 4번을 출력합니다.
...
exbtn 4,4,"P1P2P3C4C5C6C7P8"
btnwait %0
;버튼이 눌리는것을 기다립니다.
if %0 == 0 goto *title_btn
;스프라이트가 아닌 배경을 눌렀을시 title_btn으로 이동합니다.
if %0 == -1 *title_btn
;마우스 오른쪽을 클릭했을경우..
if %0 == 1 bg "image\black.png",1:bgmstop:csp -1:print 1:goto *first_01
;스프라이트 1번(5번)을 클릭했을경우 배경과 음악 종료 및 스프라이트를 모두 지운후, 게임을 시작합니다.
if %0 == 2 systemcall load
;스프라이트 2번(6번)을 클릭했을경우 로드화면을 불러옵니다.
if %0 == 3 goto *title_btn
;스프라이트 3번(7번)을 클릭했을경우 title_btn으로 이동합니다.
if %0 == 4 end
;스프라이트 4번(8번)을 클릭했을경우 게임을 끝냅니다.
goto *title_btn
이렇게 타이틀 화면 하나가 완성되었습니다.
위와같은 느낌으로 루트클리어와 올클리어의 화면을 만들면 됩니다.
저의 경우 루트클리어를 나누기 위해서 if %cm == 1 && %cz == 1 && %cs == 1 goto *actitle 아래에 if %cm == 1 || %cz == 1 || %cs == 1 goto *ctitle 를 추가했습니다.
오마케루트의 라벨이 *omake_start|スタート로 되어있는것을 해결하기 위해, 컨버터의 elsif ($line =~ /^\*(\S*)/)를 elsif ($line =~ /^\*(\w*)/)로 수정합니다.
작성자 Pure Ani
출 처 MPPC (미소녀 & PocketPC)