조회 수 1659 추천 수 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 7373 1
112 중급강의실 [상급강좌]VX 폰트 변경하기 1 양쭌 2015.07.12 1792 0
111 중급강의실 초보의 게임제작 도전기 #1-1[데이터 베이스 둘러보기] 2 치와도라 2015.05.05 1405 2
110 중급강의실 초보의 게임제작 도전기! #0 [RPG 만들기?] 치와도라 2015.05.05 1358 1
109 중급강의실 픽쳐 서서히 등장! 픽쳐 서서히 퇴장! 4 치와도라 2015.04.29 965 2
108 고급강의실 VX ACE XAS로 액션 RPG를 만들어보자! - 1. 개요 데크크래프트 2015.04.01 3964 0
107 중급강의실 VX Ace 픽쳐 메뉴 예제(V1.01) 2 APED 2015.03.18 1053 0
106 고급강의실 그림표시50개끝? 51개 해보자. 2  운 2014.12.01 1190 1
105 고급강의실 RPG Maker VX Ace - 선택지 윈도우 만들기 2 JunkMan 2014.10.16 1798 2
104 고급강의실 RPG Maker VX Ace - 윈도우 만들기 3 JunkMan 2014.10.16 2538 2
» 고급강의실 RPG Maker VX Ace - RPG Maker Title 장면(Scene) 수정하기. JunkMan 2014.10.15 1659 1
102 고급강의실 RPG Maker VX ACE - System 데이터 구조 JunkMan 2014.10.15 1056 0
101 고급강의실 RPG Maker VX ACE - CommonEvent 데이터 구조 JunkMan 2014.10.15 701 0
100 고급강의실 RPG Maker VX ACE - Animation 데이터 구조 JunkMan 2014.10.15 707 0
99 고급강의실 RPG Maker VX ACE - State 데이터 구조. JunkMan 2014.10.15 679 0
98 고급강의실 RPG Maker VX ACE - Troop 데이터 구조. JunkMan 2014.10.15 627 0
97 고급강의실 RPG Maker VX ACE - Enemy 데이터 구조. 1 JunkMan 2014.10.15 687 0
96 고급강의실 RPG Maker VX ACE - Armor 데이터 구조. JunkMan 2014.10.15 557 0
95 고급강의실 RPG Maker VX ACE - Weapon 데이터 구조. JunkMan 2014.10.15 848 0
94 고급강의실 RPG Maker VX ACE - Item 데이터 구조. JunkMan 2014.10.14 835 0
93 고급강의실 RPG Maker VX ACE - Skill 데이터 구조. JunkMan 2014.10.14 1156 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(김원배) | 사신지(김병국)