조회 수 1667 추천 수 1 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

RPG Maker VX Ace에서 Title 씬 장면을 바꾸기 이전에 RPG Maker VX Ace가 흐르는 구도를 알 필요가 있습니다.


RPG Maker VX Ace의 흐름의 구조는

Logo->Main으로 시작합니다.

Logo는 $Test(Test하는 경우 true, 아니면 flase입니다.)일 경우에는 show_logo가 작동합니다.

(게임 실행장치(exe을 작동시키면 로고가 발동되는 부분입니다.)

로고.jpg


Logo가 끝나게 되면, Main에서

SceneManager.run가 발동됩니다.

여기서, SceneManager는 Scene에 관련된 정보들을 작동을 관리하는 모듈입니다.


SceneManager의 run는

DataManager에게 Data를 읽어와서 초기화하고, 게임의 장면을 보이게 합니다.

여기서 배틀 장면인지 아닌지를 구분지어서 거기에 맞춰서 객체를 만들고,

그 객체를 start함수를 불러서 장면을 보여줍니다.


여기서 Scene이란,

장면(배틀장면, 맵장면등등)을 관리하는 소스입니다.

씬.jpg


Window란,

창으로 커맨드창, 메세지창등을 관리하는 소스입니다.

윈도우.jpg 


Title의 장면들을 수정하기 원하신다면,

Scene_Title, Window_TitleCommand

을 수정하셔야됩니다.


Scene_Title에서의 함수는

start를 본다면,


def start

    super

    SceneManager.clear

    Graphics.freeze

    create_background#배경 그림 설정.

    create_foreground#앞쪽 그림 설정.

    create_command_window#커맨드 창 설정

    play_title_music#배경음 설정

end

씬.jpg


여기서 창을 변경 시키기 원하신다면,

Window_TitleCommand을 설정하셔야됩니다.

여기서 위치를 옮기기 원하신다면,


  #--------------------------------------------------------------------------

  # * Update Window Position

  #--------------------------------------------------------------------------

  def update_placement

    self.x = 50#(Graphics.width - width) / 2

    self.y = 10#(Graphics.height * 1.6 - height) / 2

  end


이렇게 설정하신다면,

수정.jpg

이렇게 적용이 되게 됩니다.


하지만, Window_TitleCommand는 Window를 상속 받기 때문에

상위 생성자를 이용해도 위치를 수정 할 수 있습니다.

  def initialize

    super(100, 250)

    #update_placement

    select_symbol(:continue) if continue_enabled

    self.openness = 0

    open

  end


make_command_list는 Window_Command에 있는 make_command_list를 오버라이트(재 정의)하여 선택지를 출력하게 만들어 놨습니다.

  #--------------------------------------------------------------------------

  # * Create Command List

  #--------------------------------------------------------------------------

  def make_command_list

    add_command(Vocab::new_game, :new_game)

    add_command(Vocab::continue, :continue, continue_enabled)

    add_command(Vocab::shutdown, :shutdown)

  end


이걸 수정하면, 선택지를 추가/변경을 할 수 있습니다.

예로

  def make_command_list

    add_command(Vocab::new_game, :new_game)

    add_command(Vocab::shutdown, :shutdown)

  end


씬.jpg


여기서 선택지를 추가/제거할 경우에 활동(작동)하지 않습니다.(그냥 선택지만 늘어납니다.)


선택지가 증가하여 제대로 작동하기 위해선 선택지와 함수를 연결 시켜야됩니다.


자바스크립트와 자바로 친다면 이벤트 리스트너같은 역활을 하는게 필요합니다.


이것은 Window_Selectable라는게 정의가 되어 있습니다.


set_handler라는 함수가 있습니다.


적용한 것의 예는 다음과 같습니다.

  #--------------------------------------------------------------------------

  # * Create Command Window

  #--------------------------------------------------------------------------

  def create_command_window

    @command_window = Window_TitleCommand.new

    @command_window.set_handler(:new_game, method(:command_new_game))

    @command_window.set_handler(:continue, method(:command_continue))

    @command_window.set_handler(:shutdown, method(:command_shutdown))

  end


변경을 하는 방법의 예제를 사용하겠습니다.


  def create_command_window

    @command_window = Window_TitleCommand.new

    @command_window.set_handler(:new_game, method(:close_command_window))

    @command_window.set_handler(:continue, method(:command_continue))

    @command_window.set_handler(:shutdown, method(:command_shutdown))

  end


이렇게 하면,

close_command_window라는 것은 window 창을 끄는 함수입니다.

적용해서 나오는 값입니다.

수정 작업.jpg

new game을 실행시켰을시 나오는 결과입니다.


그 외 효과

  def transition_speed

    return 100

  end


transition_speed는 fadein의 속도를 뜻합니다.

그래서 수치를 변경하면, 타이틀 화면을 표시되는 속도가 달라지게 됩니다.


dispose_background와 dispose_foreground는 그림을 제거하는 함수입니다.


draw_game_title는 타이틀 모습을 보여주는 함수입니다.

  def draw_game_title

    @foreground_sprite.bitmap.font.size = 48

    rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)

    @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)

  end


이렇게 되어 있는 경우에서, 글 사이즈를 변경 하고 싶으시면,

  def draw_game_title

    @foreground_sprite.bitmap.font.size = 10

    rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)

    @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)

  end


이걸 적용한 결과는 다음과 같습니다.

수정.jpg


    @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)


여기서 $data_system.game_title는 타이틀의 값을 표시됩니다.


씬 장면을 변경하는 방법으론 다음과 같습니다.

  def command_new_game

    DataManager.setup_new_game

    close_command_window

    fadeout_all

    $game_map.autoplay

    #SceneManager.goto(Scene_Map)

    SceneManager.goto(Scene_Debug)

  end


이걸 이용해서 command_new_game에 있는 값에서 SceneManager.goto을 이용하면 장면이동을 표현할 수 있습니다.

지금은 디버깅장면으로 넘어가도록 만들었습니다.

적용한 결과입니다.

디버깅스.jpg


긴 글 읽어 주셨어 감사합니다.


[첨부파일 디버깅스.jpg 다운로드]

[첨부파일 타이틀 수정.jpg 다운로드]

[첨부파일 수정 작업.jpg 다운로드]

[첨부파일 수정씬.jpg 다운로드]

[첨부파일 수정.jpg 다운로드]

[첨부파일 윈도우.jpg 다운로드]

[첨부파일 씬.jpg 다운로드]

[첨부파일 로고.jpg 다운로드]
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 초급강의실 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 7425 1
112 초급강의실 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정. file 약빨은ㄱㅏㅅㅣ 2017.11.28 1388 0
111 초급강의실 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용) 약빨은ㄱㅏㅅㅣ 2017.11.28 1251 0
110 초급강의실 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정) 3 file 이니군 2017.08.28 1489 0
109 중급강의실 RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?- 3 file RPG란무엇인가? 2016.10.31 2189 0
108 초급강의실 초보가쓰는 초보용 Rpg게임 만들기 (xp) 6 Marine 2016.03.13 6190 0
107 초급강의실 [동영상] 게임을만들자 (7편) - 열쇠로 여는 문 만들기 - 3 file 천무 2016.02.23 3145 0
106 초급강의실 [동영상] 게임을만들자 (8편) - 맵에 포그, 광원적용 - 2 file 천무 2016.02.27 2281 0
105 초급강의실 [동영상] 게임을만들자 (4편) - 마을과 상점을 만들자- file 천무 2016.02.10 1760 0
104 초급강의실 게임의 퀼리티를 높이자! 1편-표지판 9 file ifeve 2016.01.18 4936 0
103 초급강의실 (ACE 기준)초보분들에게 유용한 10가지-1- 1 RPG란무엇인가? 2016.02.02 2691 0
102 초급강의실 게임의 퀼리티를 높이자! 2편-진행불가 7 file ifeve 2016.01.25 13238 0
101 초급강의실 [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인) file 이니군 2017.09.11 1022 0
100 초급강의실 Input 객체의 키코드 확장 8 file 러닝은빛 2016.04.05 1285 0
99 초급강의실 [동영상] 게임을만들자 (6편) - 맵배치 초보강좌 - 2 file 천무 2016.02.17 2678 0
98 중급강의실 반도의 흔한 이벤트 강좌(간략화)-1- 1 RPG란무엇인가? 2015.11.11 788 0
97 중급강의실 엽여비의 야매강좌- VXA : 기초강좌-VXA의 이해 3 엽여비소엽 2015.10.09 869 0
96 고급강의실 VX ACE XAS로 액션 RPG를 만들어보자! - 1. 개요 데크크래프트 2015.04.01 3971 0
95 중급강의실 VX Ace 픽쳐 메뉴 예제(V1.01) 2 APED 2015.03.18 1065 0
94 고급강의실 RPG Maker VX ACE - System 데이터 구조 JunkMan 2014.10.15 1059 0
93 고급강의실 RPG Maker VX ACE - CommonEvent 데이터 구조 JunkMan 2014.10.15 703 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(김원배) | 사신지(김병국)