閲覧数 299 推奨数 0 コメント 0
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷 修正 削除
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷 修正 削除
>저가 스크린샷 대로 해봤는데..스크린샷처럼..
>빈공간이 생기네요..ㅠ.ㅠ
>키보드를 ↑ 이거 한번만 눌러보면 없어지는데..
>세이브나...게임종료 버튼만 눌렀다가 esc를 눌르면..저렇게 빈 공간이 생김니다..
>어떻게 처리 해야 하나요??
>
>저가 처리한 스크립트도 올리겠습니다
>
>#==============================================================================
># ■ Scene_Menu
>#------------------------------------------------------------------------------
>#  메뉴 화면의 처리를 실시하는 클래스입니다.
>#==============================================================================
>
>class Scene_Menu
>  #--------------------------------------------------------------------------
>  # ● 오브젝트 초기화
>  #     menu_index : 커멘드의 커서 초기 위치
>  #--------------------------------------------------------------------------
>  def initialize(menu_index = 0)
>    @menu_index = menu_index
>  end
>  #--------------------------------------------------------------------------
>  # ● 메인 처리
>  #--------------------------------------------------------------------------
>  def main
>    # 커멘드 윈도우를 작성
>    s1 = $data_system.words.item
>    s2 = $data_system.words.equip
>    s3 = "세이브"
>    s4 = "게임 종료"
>    @command_window = Window_Command.new(160, [s1, s2, s3, s4])
>    @command_window.index = @menu_index
>    # 파티 인원수가 0 명의 경우
>    if $game_party.actors.size == 0
>      # 아이템, 스킬, 장비, 스테이터스를 무효화
>      @command_window.disable_item(0)
>      @command_window.disable_item(1)
>    end
>    # 세이브 금지의 경우
>    if $game_system.save_disabled
>      # 세이브를 무효로 한다
>      @command_window.disable_item(2)
>    end
>    # 플레이 시간 윈도우를 작성
>    @playtime_window = Window_PlayTime.new
>    @playtime_window.x = 0
>    @playtime_window.y = 224
>    # 보수 윈도우를 작성
>    @steps_window = Window_Steps.new
>    @steps_window.x = 0
>    @steps_window.y = 320
>    # 골드 윈도우를 작성
>    @gold_window = Window_Gold.new
>    @gold_window.x = 0
>    @gold_window.y = 416
>    # 스테이터스 윈도우를 작성
>    @status_window = Window_MenuStatus.new
>    @status_window.x = 160
>    @status_window.y = 0
>    # 트란지션 실행
>    Graphics.transition
>    # 메인 루프
>    loop do
>      # 게임 화면을 갱신
>      Graphics.update
>      # 입력 정보를 갱신
>      Input.update
>      # 프레임 갱신
>      update
>      # 화면이 바뀌면 루프를 중단
>      if $scene != self
>        break
>      end
>    end
>    # 트란지션 준비
>    Graphics.freeze
>    # 윈도우를 해방
>    @command_window.dispose
>    @playtime_window.dispose
>    @steps_window.dispose
>    @gold_window.dispose
>    @status_window.dispose
>  end
>  #--------------------------------------------------------------------------
>  # ● 프레임 갱신
>  #--------------------------------------------------------------------------
>  def update
>    # 윈도우를 갱신
>    @command_window.update
>    @playtime_window.update
># 커멘드 윈도우가 액티브의 경우: update_command 를 부른다
>if @command_window.active
>  update_command
>      return
>    end
>    # 스테이터스 윈도우가 액티브의 경우: update_status 를 부른다
>    if @status_window.active
>      update_status
>      return
>    end
>  end
>  #--------------------------------------------------------------------------
>  # ● 프레임 갱신 (커멘드 윈도우가 액티브의 경우)
>  #--------------------------------------------------------------------------
>  def update_command
>    # B 버튼이 밀렸을 경우
>    if Input.trigger?(Input::B)
>      # 캔슬 SE 를 연주
>      $game_system.se_play($data_system.cancel_se)
>      # 맵 화면으로 전환해
>      $scene = Scene_Map.new
>      return
>    end
>    # C 버튼이 밀렸을 경우
>    if Input.trigger?(Input::C)
>      # 파티 인원수가 0 명으로, 세이브, 게임 종료 이외의 커멘드의 경우
>      if $game_party.actors.size == 0 and @command_window.index < 4
>        # 버저 SE 를 연주
>        $game_system.se_play($data_system.buzzer_se)
>        return
>      end
>      # 커멘드 윈도우의 커서 위치에서 분기
>      case @command_window.index
>      when 0  # 아이템
>        # 결정  SE 를 연주
>        $game_system.se_play($data_system.decision_se)
>        # 아이템 화면으로 전환해
>        $scene = Scene_Item.new
>      when 1  # 장비
>        # 결정 SE 를 연주
>        $game_system.se_play($data_system.decision_se)
>        # 스테이터스 윈도우를 액티브하게 한다
>        @command_window.active = false
>        @status_window.active = true
>        @status_window.index = 0
>      when 2  # 세이브
>        # 세이브 금지의 경우
>        if $game_system.save_disabled
>          # 버저 SE 를 연주
>          $game_system.se_play($data_system.buzzer_se)
>          return
>        end
>        # 결정 SE 를 연주
>        $game_system.se_play($data_system.decision_se)
>        # 세이브 화면으로 전환해
>        $scene = Scene_Save.new
>      when 3  # 게임 종료
>        # 결정 SE 를 연주
>        $game_system.se_play($data_system.decision_se)
>        # 게임 종료 화면으로 전환해
>        $scene = Scene_End.new
>      end
>      return
>    end
>  end
>  #--------------------------------------------------------------------------
>  # ● 프레임 갱신 (스테이터스 윈도우가 액티브의 경우)
>  #--------------------------------------------------------------------------
>  def update_status
>    # B 버튼이 밀렸을 경우
>    if Input.trigger?(Input::B)
>      # 캔슬 SE 를 연주
>      $game_system.se_play($data_system.cancel_se)
>      # 커멘드 윈도우를 액티브하게 한다
>      @command_window.active = true
>      @status_window.active = false
>      @status_window.index = -1
>      return
>    end
>    # C 버튼이 밀렸을 경우
>    if Input.trigger?(Input::C)
>      # 커멘드 윈도우의 커서 위치에서 분기
>      case @command_window.index
>      when 1  # 장비
>        # 결정 SE 를 연주
>        $game_system.se_play($data_system.decision_se)
>        # 장비 화면으로 전환해
>        $scene = Scene_Equip.new(@status_window.index)
>        when 2  # 스테이터스
>        # 결정 SE 를 연주
>        $game_system.se_play($data_system.decision_se)
>        # 스테이터스 화면으로 전환해
>        $scene = Scene_Status.new(@status_window.index)
>      end
>      return
>    end
>  end
>end
>
>
>이게 저가 해낸 것입니다..
>어떻게 처리 해야 하나요??




아시다 시피, 윈도우 아래에 있는 검은색은 어쩔수 없습니다.
그리고 커맨드에 이상이 오는 것은, 커맨드의 기초가 샐랙터블인데,
그 상태에서 열이 없는 부분에 소환을 시키면 자동생성이 되버리기 때문에
생기는 현상입니다.

수정법은 간단합니다.

Scene_Item, Equip, Status, Skill, End 에서, update 메소드에서,
if Input.trigger?(Input::B) 라는 것이 있을것입니다.
그 아래에 $scene = Scene_Menu.new(랜덤) 이라고 적혀 있을 겁니다.
Item은 0, Equip은 1, 세이브는 2, End 는 3.....이런식으로 교체해 주시면 됩니다.
그 외에 Status나 Skill은 Map 같은것으로 전환해 주세요.
(맵으로 전환하는 방법은 $scene = Scene_Map.new 이라고 적으시면 됩니다.)
?

List of Articles
番号 タイトル 投稿者 日付 閲覧数
8827 저번 글들과, 이전 글에 대해 묻고 싶습니다. idtptkd 2005.05.17 1471
8826 이전 작가들은 어떻게 되는 건가요? 아렉스 2005.05.17 1263
8825 이전 작가들은 어떻게 되는 건가요? 영원전설 2005.05.18 1319
8824 프루티룹스 질문... 신승일 2005.05.18 1654
8823 창작글만 있는데 감상문 같은 건 쓸수 없나요? 다르칸 2005.05.18 1162
8822 창작글만 있는데 감상문 같은 건 쓸수 없나요? 아렉스 2005.05.18 1202
8821 창작글만 있는데 감상문 같은 건 쓸수 없나요? 천무 2005.05.18 971
8820 창작글만 있는데 감상문 같은 건 쓸수 없나요? 『水』신교 2005.05.18 988
8819 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; 밀크마스터 2005.05.18 1295
8818 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; 나랑놀자 2005.05.18 1236
8817 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; 셉티찡 2005.05.18 1282
8816 릴레이 소설 말인데요... 외로운갈매기 2005.05.18 784
8815 이전의 창작글 게시판의 글은 어케되나요? 천무 2005.05.18 593
8814 이전의 창작글 게시판의 글은 어케되나요? Sir_아사히 2005.05.19 698
8813 윈도우 98에서는 rpgxp안돌아가요 ? 바람을 가르는 자 2005.05.19 866
8812 윈도우 98에서는 rpgxp안돌아가요 ? 미칼렌 2005.05.19 1044
8811 패치 요청... Norid 2005.05.19 587
8810 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; black-angel 2005.05.19 1266
8809 [RPG XP] 게임 테스트 오류. 살려주세요// Norid 2005.05.19 1060
8808 릴레이소설 사래신장전 완결했는데요.. 적랑 2005.05.20 764
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442