XP 스크립트

#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  타이틀 화면의 처리를 실시하는 클래스입니다.
#==============================================================================

class Scene_Title
  #--------------------------------------------------------------------------
  # ● 메인 처리
  #--------------------------------------------------------------------------
  def main
    # 전투 테스트의 경우
    if $BTEST
      battle_test
      return
    end
    # 데이타베이스를 로드
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes      = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items        = load_data("Data/Items.rxdata")
    $data_weapons      = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies      = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    # 시스템 오브젝트를 작성
    $game_system = Game_System.new
    # 타이틀 그래픽을 작성
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # 커멘드 윈도우를 작성
    s1 = "게임시작"
    s2 = "현재음악만 재생게임"
    s3 = "불러오기"
    s4 = "게임종료"
    @command_window = Window_Command.new(192, [s1, s2, s3, s4])
    @command_window.back_opacity = 160
    @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 288
    # 콘티 뉴 유효 판정
    # 세이브 파일이 하나에서도 존재할지를 조사한다
    # 유효하면 @continue_enabled 를 true, 무효라면 false 로 한다
    @continue_enabled = false
    for i in 0..3
      if FileTest.exist?("Save#{i+1}.rxdata")
        @continue_enabled = true
      end
    end
    # 콘티 뉴가 유효한 경우, 커서를 콘티 뉴에 맞춘다
    # 무효인 경우, 콘티 뉴의 문자를 그레이 표시로 한다
    if @continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    # 타이틀 BGM 를 연주
    $game_system.bgm_play($data_system.title_bgm)
    # ME, BGS 의 연주를 정지
    Audio.me_stop
    Audio.bgs_stop
    # 트란지션 실행
    Graphics.transition
    # 메인 루프
    loop do
      # 게임 화면을 갱신
      Graphics.update
      # 입력 정보를 갱신
      Input.update
      # 프레임 갱신
      update
      # 화면이 바뀌면 루프를 중단
      if $scene != self
        break
      end
    end
    # 트란지션 준비
    Graphics.freeze
    # 커멘드 윈도우를 해방
    @command_window.dispose
    # 타이틀 그래픽을 해방
    @sprite.bitmap.dispose
    @sprite.dispose
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    # 커멘드 윈도우를 갱신
    @command_window.update
    # C 버튼이 밀렸을 경우
    if Input.trigger?(Input::C)
      # 커멘드 윈도우의 커서 위치에서 분기
      case @command_window.index
      when 0  # 새로시작
        command_new_game
      when 1  # 타이틀음악으로 새로시작
        command_new_game2
      when 2  # 불러오기
        command_continue
      when 3  # 게임종료
        command_shutdown
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 커멘드 :
  #--------------------------------------------------------------------------
  def command_new_game
    # 결정 SE 를 연주
    $game_system.se_play($data_system.decision_se)
    # BGM 를 정지
    Audio.bgm_stop
    # 플레이 시간 계측용의 프레임 카운트를 리셋트
    Graphics.frame_count = 0
    # 각종 게임 오브젝트를 작성
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables    = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party        = Game_Party.new
    $game_troop        = Game_Troop.new
    $game_map          = Game_Map.new
    $game_player        = Game_Player.new
    # 초기 파티를 셋업
    $game_party.setup_starting_members
    # 초기 위치의 맵을 셋업
    $game_map.setup($data_system.start_map_id)
    # 플레이어를 초기 위치에 이동
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    # 플레이어를 리프레쉬
    $game_player.refresh
    # 맵으로 설정되어 있는 BGM 와 BGS 의 자동 변환을 실행
    $game_map.autoplay
    # 맵을 갱신 (병렬 이벤트 실행)
    $game_map.update
    # 맵 화면으로 전환해
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # ● 커멘드 :
  #--------------------------------------------------------------------------
  def command_continue
    # 콘티 뉴가 무효의 경우
    unless @continue_enabled
      # 버저 SE 를 연주
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # 결정 SE 를 연주
    $game_system.se_play($data_system.decision_se)
    # 로드 화면으로 전환해
    $scene = Scene_Load.new
  end
  #--------------------------------------------------------------------------
  # ● 커멘드 :
  #--------------------------------------------------------------------------
  def command_shutdown
    # 결정 SE 를 연주
    $game_system.se_play($data_system.decision_se)
    # BGM, BGS, ME 를 페이드아웃
    Audio.bgm_fade(800)
    Audio.bgs_fade(800)
    Audio.me_fade(800)
    # 슛다운
    $scene = nil
  end
  #--------------------------------------------------------------------------
  # ● 커멘드 :
  #--------------------------------------------------------------------------
  def  command_new_game2
    # 플레이 시간 계측용의 프레임 카운트를 리셋트
    Graphics.frame_count = 0
    # 각종 게임 오브젝트를 작성
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables    = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party        = Game_Party.new
    $game_troop        = Game_Troop.new
    $game_map          = Game_Map.new
    $game_player        = Game_Player.new
    # 초기 파티를 셋업
    $game_party.setup_starting_members
    # 초기 위치의 맵을 셋업
    $game_map.setup($data_system.start_map_id)
    # 플레이어를 초기 위치에 이동
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    # 플레이어를 리프레쉬
    $game_player.refresh
    # 맵으로 설정되어 있는 BGM 와 BGS 의 자동 변환을 실행
    $game_map.autoplay
    # 맵을 갱신 (병렬 이벤트 실행)
    $game_map.update
    # 맵 화면으로 전환해
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # ● 전투 테스트
  #--------------------------------------------------------------------------
  def battle_test
    # 데이타베이스 (전투 테스트용)를 로드
    $data_actors        = load_data("Data/BT_Actors.rxdata")
    $data_classes      = load_data("Data/BT_Classes.rxdata")
    $data_skills        = load_data("Data/BT_Skills.rxdata")
    $data_items        = load_data("Data/BT_Items.rxdata")
    $data_weapons      = load_data("Data/BT_Weapons.rxdata")
    $data_armors        = load_data("Data/BT_Armors.rxdata")
    $data_enemies      = load_data("Data/BT_Enemies.rxdata")
    $data_troops        = load_data("Data/BT_Troops.rxdata")
    $data_states        = load_data("Data/BT_States.rxdata")
    $data_animations    = load_data("Data/BT_Animations.rxdata")
    $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
    $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
    $data_system        = load_data("Data/BT_System.rxdata")
    # 플레이 시간 계측용의 프레임 카운트를 리셋트
    Graphics.frame_count = 0
    # 각종 게임 오브젝트를 작성
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables    = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party        = Game_Party.new
    $game_troop        = Game_Troop.new
    $game_map          = Game_Map.new
    $game_player        = Game_Player.new
    # 전투 테스트용의 파티를 셋업
    $game_party.setup_battle_test_members
    # 무리 ID, 도주 가능 플래그, 배틀 가방을 설정
    $game_temp.battle_troop_id = $data_system.test_troop_id
    $game_temp.battle_can_escape = true
    $game_map.battleback_name = $data_system.battleback_name
    # 배틀 개시 SE 를 연주
    $game_system.se_play($data_system.battle_start_se)
    # 배틀 BGM 를 연주
    $game_system.bgm_play($game_system.battle_bgm)
    # 배틀 화면으로 전환해
    $scene = Scene_Battle.new
  end
end

쩝. 타이틀 내용 지우고 저 내용으로 겹쳐쓰세요. 별로 좋은건 아니니 안쓰시는것을 권장.
색상이 그레이로 표시되는건 수정않했습니다.
그냥게임시작을 눌러보세요!! bgm을 없음으로 해놓으면 조용~
현재음악으로 시작해보세요!! bgm을 없음으로 해놓아도 타이틀음악이 좔좔좔~~~

중간에 BGM의 재생처리하면 안먹힐수도있습니다.

Who's 백호

?

이상혁입니다.

http://elab.kr

Comment '2'
  • ?
    카비 2009.12.28 19:38

    하하;;

    그런데

    현제음악만 재생게임

    이라는 글씨가 회색으로 뜨면서

    불러오기가안먹히네요;

    아참..심심작이군요;

    어쨋든 감사합니다.

    유용한 백호님의 강좌감사합니다.

  • ?
    엑셀 2010.12.18 21:13

    아 잘쓸게요 ^^ 제가 게임이 시작되면 서버선택이 나오는데 타이틀음악이 끊기고 다시 됬는데^^


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
461 메뉴 넷플레이 업그레이드됀 메뉴 스크립트 4 백호 2009.02.22 2040
460 전투 S ABS_NonSDK(구버전용) 5 file 백호 2009.02.22 1494
459 전투 S ABS_NonSDK ver 1 file 백호 2009.02.22 1458
458 기타 Defining Encounter Areas by RPG Advocate (사용법 첨부) file 백호 2009.02.22 1201
457 아이템 Item Acquired Window by SiliconHero@rmxp.net 백호 2009.02.22 1096
456 기타 풀스크린 스크립트 2 백호 2009.02.22 1407
455 온라인 Multi-Netplay Extended[구버전용] 3 백호 2009.02.22 2175
454 온라인 Multi-Netplay Extended (신버전) 10 백호 2009.02.22 2864
453 HUD 넷플레이 HUD표시 2 file 백호 2009.02.22 3094
452 메뉴 링 메뉴 Edited by Hypershadow180@rmxp.net 1 file 백호 2009.02.22 1974
451 전투 Steal Script 5.5 by trickster@rmxp.net (SDK호환) file 백호 2009.02.22 1206
450 기타 스크립트 자료 3 file 백호 2009.02.22 905
449 온라인 multy-netplay 로그인창에서 비밀번호를 ***표시해주는 script~! 1 백호 2009.02.22 1889
» 타이틀/게임오버 심심해서 구현해본 타이틀음악만으로 게임 플레이하기 2 백호 2009.02.22 1621
447 기타 Selected phyolomortis.com scripts 1 file 백호 2009.02.22 789
446 파티 Party Switching Screen by exseiken file 백호 2009.02.22 1299
445 기타 창고 시스템 8 백호 2009.02.22 1762
444 장비 Advanced Equip Window 백호 2009.02.22 806
443 장비 장비창 개조 스크립트 from Harts Horn 7 백호 2009.02.22 1767
442 오디오 WinAMP 플러그인을 이용하여 RMXP에서 다른 사운드포맷 지원하기 v3 by Guillame777@rmxp.net 백호 2009.02.22 936
Board Pagination Prev 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ... 52 Next
/ 52