Avangs

  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품new
    • 완성작 게임
    • 체험판 게임
    • 한글판 게임new
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입
Avangs
  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품new
    • 완성작 게임
    • 체험판 게임
    • 한글판 게임new
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입

NOTICE

공지사항
더보기
  • 서버 안정성 및 보안 강화 조치 04.20

Recently Added Games

최근 등록 게임
  • 어드벤쳐 고철에 파묻힌 데모나 (屑鉄まとうデモナ) newfile 08.19
  • 어드벤쳐 비올레 저택의 시온 : 꽃눈의 저택|RPG Maker MZ 단편 심리공포 어드벤처 file 08.17
  • 기타 (똥 주의)그저 똥을 누러 가는 게임 Re:Boot updatefile 08.16
  • 롤플레잉 SACCHARINE SYNC (DEMO) 배포 file 08.12
  • 기타 (완성작) 야구장에 가자4 file 2 07.07
타이틀/게임오버
2012.02.11 22:04

타이틀 화면 없이 게임을 시작하게 만드는법.

마에르드
조회 수 4785 추천 수 0 댓글 6
크게 작게 위로 아래로 댓글로 가기 인쇄
크게 작게 위로 아래로 댓글로 가기 인쇄

스크립트는 다룰줄 모르니 그냥 여기 저기 빼고 붙이면서 만든 스크립트입니다.

 

Scene_Base 에 이것을 덮어씌웁니다.

#==============================================================================
# ■ Scene_Base
#------------------------------------------------------------------------------
#  게임중의 모든 씬의 슈퍼 클래스입니다.
#==============================================================================

class Scene_Base
  #--------------------------------------------------------------------------
  # ● 메인
  #--------------------------------------------------------------------------
  def main
    start
    post_start
    update until scene_changing?
    pre_terminate
    terminate
  end
  #--------------------------------------------------------------------------
  # ● 개시 처리
  #--------------------------------------------------------------------------
  def start
    create_main_viewport
  end
  #--------------------------------------------------------------------------
  # ● 개시 후처리
  #--------------------------------------------------------------------------
  def post_start
    perform_transition
    Input.update
  end
  #--------------------------------------------------------------------------
  # ● 씬 변경중 판정
  #--------------------------------------------------------------------------
  def scene_changing?
    SceneManager.scene != self
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    update_basic
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신(기본)
  #--------------------------------------------------------------------------
  def update_basic
    Graphics.update
    Input.update
    update_all_windows
  end
  #--------------------------------------------------------------------------
  # ● 종료 사전 처리
  #--------------------------------------------------------------------------
  def pre_terminate
  end
  #--------------------------------------------------------------------------
  # ● 종료 처리
  #--------------------------------------------------------------------------
  def terminate
    Graphics.freeze
    dispose_all_windows
  end
  #--------------------------------------------------------------------------
  # ● 트란지션 실행
  #--------------------------------------------------------------------------
  def perform_transition
    Graphics.transition(transition_speed)
  end
  #--------------------------------------------------------------------------
  # ● 트란지션 속도의 취득
  #--------------------------------------------------------------------------
  def transition_speed
    return 10
  end
  #--------------------------------------------------------------------------
  # ● 뷰포트의 작성
  #--------------------------------------------------------------------------
  def create_main_viewport
    @viewport = Viewport.new
    @viewport.z = 200
  end
  #--------------------------------------------------------------------------
  # ● 전윈도우의 갱신
  #--------------------------------------------------------------------------
  def update_all_windows
    instance_variables.each do |varname|
      ivar = instance_variable_get(varname)
      ivar.update if ivar.is_a?(Window)
    end
  end
  #--------------------------------------------------------------------------
  # ● 전윈도우의 해방
  #--------------------------------------------------------------------------
  def dispose_all_windows
    instance_variables.each do |varname|
      ivar = instance_variable_get(varname)
      ivar.dispose if ivar.is_a?(Window)
    end
  end
  #--------------------------------------------------------------------------
  # ● 호출원의 씬에 돌아온다
  #--------------------------------------------------------------------------
  def return_scene
    SceneManager.return
  end
  #--------------------------------------------------------------------------
  # ● 각종 사운드와 그래픽의 일괄 페이드아웃
  #--------------------------------------------------------------------------
  def fadeout_all(time = 1000)
    RPG::BGM.fade(time)
    RPG::BGS.fade(time)
    RPG::ME.fade(time)
    Graphics.fadeout(time * Graphics.frame_rate / 1000)
    RPG::BGM.stop
    RPG::BGS.stop
    RPG::ME.stop
  end
  #--------------------------------------------------------------------------
  # ● 게임 오버 판정
  #    파티가 전멸 상태라면 게임 오버 화면에 천이 한다.
  #--------------------------------------------------------------------------
  def check_gameover
    SceneManager.goto(Scene_Gameover) if $game_party.all_dead?
  end
end

Scene_Title 에 이것을 덮어씌웁니다.

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

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # ● 개시 처리
  #--------------------------------------------------------------------------
  def start
    DataManager.setup_new_game
    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
  end
end

 

이것으로 끝.

근데 이렇게 하면 별 문제가 안일어날까 싶네요.

 

덧붙여 세이브, 로드를 하려면 어떤 구분을 이벤트 커맨드에 입력해야하나 싶네요.

세이브는 세이브 화면 로드 하면 될 것 같은데 로드는?

Who's 마에르드

profile

이웃 나라의 왕자가 잡혀갔다!

왕자를 구하려는 공주님의 대 모험이 펼쳐진다!

 

Nella Fantasia

0 추천 0 비추천
Facebook Twitter Google Pinterest KakaoStory Band
위로 아래로 댓글로 가기 인쇄
에디터 선택하기
✔ 텍스트 모드 ✔ 에디터 모드
?
댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
Comments '6'
  • ?
    kiyohwan 2012.02.12 12:38

    실행해보시면 에러납니다.

    수정하신 코드를 보면 foreground, background를 초기화하는 create_foreground, create_background를 생략하셨네요. Scene_Title클래스 해제시 실행되는terminate함수에 foreground, background에 만들어둔 스프라이트 객체를 해제하는 코드가 들어있기 때문에 nil에러가 납니다.

    타이틀 화면이 잠깐 비쳐도 상관없다면 크게 손댈 것 없이 몇라인만 추가하면 되지만 타이틀화면 자체가 나오지 않고 바로 게임 플레이를 시작하고 싶다면 Scene_Title를 꽤 많이 손봐야 하네요.

    그리고 스크립트 수정시 꽤 중요한 사항인데요.

    기존 스크립트를 직접 수정하지 마시고 제일 하단의 main 바로 앞부분에서 재정의해주는 편이 이후의 수정이나 확장이 쉽습니다.

    댓글
  • profile
    마에르드 2012.02.12 13:31

    음. 어렵군요. 음... 음... 모르겠다.

    저걸 main 바로 앞에 다시 넣으면 될까요?

    에러경우는 아직 제작 초기라 발견하지를 못했네요... 흠.

     

    덧붙여 어느 부분에서 에러가 나는지,,;; 흠.

    댓글
  • ?
    kiyohwan 2012.02.12 15:06 Files첨부 (2)
    • • 스크립트 설명1.JPG
    • • 스크립트 설명2.JPG

    스크립트 에디터를 열어서 그림대로의 위치에 스크립트를 추가하시면 됩니다.

    그리고 에러의 경우는 프로그래밍을 모르시면 설명이 너무 길어집니다.

    아무래도 프로그래밍을 전혀 모른다면 공부를 하는 수 밖에 없습니다.

    도움말을 읽어보는 것만으로도 꽤 도움이 되니 기초를 배운다는 생각으로 읽어보고 예제를 따라해 보세요.

    일단 타이틀 없이 바로 게임이 시작하고 세이브가 있을 경우 타이틀화면이 나오도록 하는 수정예는 따로 설명을 해보도록 하죠.

    연출적으로 저도 생각해본 적이 있던 거라 흥미가 동해서 만들어봤습니다.

    댓글
  • ?
    kiyohwan 2012.02.12 15:27

    class Scene_Title # 기존의 Scene_Title를 재정의(Overwirte)
      # Scene_Title가 만들어져서 실행될 때 호출되는 함수
      def start # 이렇게 전부를 새로 정의할 필요없이 수정이 필요한 함수만 새로 정의해 주면 됨.
        super
        SceneManager.clear
        Graphics.freeze
        if !DataManager.save_file_exists? # 세이브  존재여부를 확인해 없으면 바로 새게임을 시작
          # DataManager라는 모듈의 함수로 세이브 존재여부를 확인합니다.
          # command_new_game함수를 바로 호출할 경우 역시 메모리 반환 관련으로 문제가 있어 필요한 내용만 가져왔습니다.
          DataManager.setup_new_game
          fadeout_all
          $game_map.autoplay
          SceneManager.goto(Scene_Map)
        else # 세이브가 존재할 경우 기존의 타이틀 화면 출력
          # 이하는 타이틀화면 구성을 그리는 부분
          # 여기서 실제로 메모리를 사용하기 때문에
          # Scene_Title사용이 끝나고 메모리를 반환하는 처리가 종료시 들어가 있습니다.
          create_background
          create_foreground
          create_command_window
          play_title_music
        end
      end
      # Scene_Title가 해제될 때 호출되는 함수
      def terminate
        super
        SceneManager.snapshot_for_background
        if DataManager.save_file_exists? # 세이브가 있을 경우는 타이틀 화면을 출력했으므로 메모리반환처리를 실시함 
          # 이 밑으로는 타이틀 화면 구성이 사용한 메모리를 반환하는 처리
          dispose_background
          dispose_foreground
        end
      end
    end

    간단하게 수정해본 건데 여기서 만족하지 마시고 도움말로 기초를 닦고 Ruby를 공부해 보세요. 그러면 좀더 많은 걸 할 수 있게 될 겁니다.
    댓글
  • profile
    마에르드 2012.02.13 07:44

    귀찮으셨을텐데 이렇게 설명해주셔서 감사합니당,,
    정말 많은 도움이 되었어요 ㅋㅋ
    진짜 루비 공부밖엔 답이 읎나봅니다 ㅠㅠ..

    댓글
  • ?
    Nintendo 2012.03.03 17:37

    ㅇ...우왕 대단하시당ㄷ

    댓글

Category
  • 그래픽(7)
  • 맵/타일(10)
  • 메뉴(14)
  • 메시지(13)
  • 미니맵(2)
  • 버그픽스(7)
  • 변수/스위치(6)
  • 상점(3)
  • 상태/속성(3)
  • 스킬(10)
  • 아이템(14)
  • 액터(2)
  • 원경(0)
  • 영상(1)
  • 오디오(3)
  • 온라인(1)
  • 이동 및 탈것(8)
  • 이름입력(2)
  • 장비(5)
  • 저장(3)
  • 전투(39)
  • 제작도구(1)
  • 직업(1)
  • 퀘스트(2)
  • 키입력(7)
  • 타이틀/게임오버(9)
  • 파티(1)
  • HUD(7)
  • 기타(39)
List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 7246
공지 RPG VX ACE 유용한 링크 모음 16 아방스 2012.01.03 31220
217 그래픽 셰이크 강화 스크립트 file 시낵스 2023.12.13 689
216 오디오 볼륨변경 스크립트 레기우스州 2020.08.09 721
215 전투 LNX11 전투 RPGXP 전투처럼 만들기 큔. 2018.11.23 1731
214 온라인 브라우저 열기 스크립트 1 큔. 2018.09.09 904
213 타이틀/게임오버 GG침 스크립트 file 큔. 2018.07.18 1056
212 메뉴 파티 개별 인벤토리 스크립트 안나카레리나 2018.06.25 971
211 전투 기본전투의 커스텀 명중률 제작 안나카레리나 2018.06.10 756
210 기타 LUD Script Package file LuD 2017.08.15 1280
209 맵/타일 레이어 맵 <layer> 기능 2 file LuD 2017.08.03 1729
208 HUD 아이템 레어리티 스크립트 (번역기 돌림) 2 file 부초 2017.07.21 1702
207 기타 (링크)RPG VX ACE 블랙잭 스크립트 게임애호가 2017.06.18 1230
206 전투 SPRG 컨버터 NEXT 1 file 게임애호가 2016.06.09 2138
205 전투 Tomoaky's RGSS3_SRPG ver.0.15a 한국어번역 3 file 초코빙수 2016.06.05 2310
204 맵/타일 Map Zoom Ace by MGC 습작 2016.02.28 1231
203 메시지 Item Choice Help Window for Ace 2 file 습작 2016.02.15 1596
202 기타 '결정 키로 이벤트 시작' 조건분기 추가 file Bunny_Boy 2016.01.16 1387
201 그래픽 커스텀 아이콘 적용하기 2 file 간로 2015.09.28 3035
200 버그픽스 RGSS3 Unofficial Bug Fix Snippets Alkaid 2015.09.09 862
199 이동 및 탈것 Khas Pathfinder(길찾기 스크립트) 15 찬잎 2015.07.10 2234
198 메시지 아이템 정보 메세지가 뜨는 아이템 획득 1 폴라 2015.05.21 2840
쓰기
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11
AVANGS

게임 제작, 창작, 자료, 강좌를 연결하는 커뮤니티

  • 개인정보 취급방침

Copyright © 2026 Avangs