조회 수 2933 추천 수 1 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제

이미 아시는 분들은 양해를 부탁드릴게요.. 혹시 스크립트를 쓰는게 어려워서 손도 못 대신 분들을 위해 이렇게 짧게(?) 나마 작성하는 글입니다.


사실 '팁'이라고 한 이유는 기존 스크립트에 두세줄만 추가/수정 하면 되기 때문입니다.


전 루비 스크립트의 루비도 모르는 사람입니다. 그래서 지금 제작하고 있는 게임도 스크립트를 쓸 줄 몰라 100%이벤트로만 땜빵식으로 하고 있지요. -_-;;


근데 C언어나 자바 언어 같은 프로그래밍 언어는 다룬 적은 있습니다. 그래서 루비 스크립트에도 도전을 마침내 한 번 해봤죠.


준비물은 두 개 입니다. 하나는 스크립트 파일, 하나는 로고 파일입니다. 제가 사용한 스크립트는 첨부해 드릴게요. 구글링해서 구했습니다.


먼저 스크립트 파일을 열면


  unless $DEBUG # 디버그(테스트 플레이)가 아닌 경우만 표시

    # 개시시의 효과음아니개를 연주

    # 스프라이트 작성

    @sprite = Sprite.new

    # 타이틀 로고 읽기

    @sprite.bitmap = RPG::Cache.title("Logo.jpg")  # 타이틀 로고의 화상

    # 표시 위치를 화면 중앙으로 설정

    @sprite.x = (640 - @sprite.bitmap.width) / 2

    @sprite.y = (480 - @sprite.bitmap.height) / 2

    # 불투명도 MAX(완전 표시)

    @sprite.opacity = 255

    # 트란지션 실행

    Graphics.transition(40)  # FPS를 만지작거려는 없는 경우, 이것으로 2초용명이 됩니다

    # 2초간 그대로 표시한 후, 2초에 페이드아웃

    for i in 0..160

      @sprite.opacity =240 - (i - 40) * 6 if i >= 40

      Graphics.update

    end

    # 스프라이트를 해방

    @sprite.dispose

    # 트란지션 준비

    Graphics.freeze

  end


이렇게 있습니다. 이 부분을 F11을 눌러 Scene_Title 스크립트의


$game_system = Game_System.new


이 바로 밑에 넣어주세요. 일단은 게임 시스템 개체를 생성하자마자 로고를 띄우기 위해 준비한다고 이해하시면 되겠습니다.


첨부한 스크립트에서 @sprite.bitmap = RPG::Cache.title("Logo.jpg") 의 "Logo.jpg"를 Graphics/Title에 가져온


개인 로고 파일의 이름을 넣어주면 되겠습니다. 가령 저의 경우엔 


@sprite.bitmap = RPG::Cache.title("KEnt.png")


자, 이대로 실행하면 게임 시작할 때 로고 화면이 뜨고 메인이 뜹니다 (야호! 성공?) 근데 아뿔싸, 게임중 게임오버를 당하거나 해서 메인으로 돌아올려고 하면 로고가 다시 뜨는 걸 보실 수 있습니다. (-_-;;)


문제가 어디서 발생하냐 하면 로고를 화면에 이미 한 번 띄웠는지 게임은 알지 못하기 때문입니다. 그래서 다음과 같이 수정해줍시다.


unless $logo_count

    $logo_count = true

    # 개시시의 효과음아니개를 연주

    # 스프라이트 작성

    @sprite = Sprite.new

    # 타이틀 로고 읽기

    @sprite.bitmap = RPG::Cache.title("KEnt.png")  # 타이틀 로고의 화상

    # 표시 위치를 화면 중앙으로 설정

    @sprite.x = (640 - @sprite.bitmap.width) / 2

    @sprite.y = (480 - @sprite.bitmap.height) / 2

    # 불투명도 MAX(완전 표시)

    @sprite.opacity = 255

    # 트란지션 실행

    Graphics.transition(40)  # FPS를 만지작거려는 없는 경우, 이것으로 2초용명이 됩니다

    # 2초간 그대로 표시한 후, 2초에 페이드아웃

    for i in 0..160

      @sprite.opacity =240 - (i - 40) * 6 if i >= 40

      Graphics.update

    end

    # 스프라이트를 해방

    @sprite.dispose

    # 트란지션 준비

    Graphics.freeze

  end


$logo_count는 불리언 타입의 전역 변수입니다. Scene_Title의 main 메서드를 호출할 때 전역 변수가 참인지 거짓인지 확인 후 참이 아니면 아직 화면에 띄우지 않았다는 말이죠. 그리고 로고를 띄웠으면 띄웠다고 표시를 해줍니다. 여기서 개인 프로그래밍 경험상 전역 변수가 아니라 static, 정적 변수라고 하는게 더 알맞을 것 같습니다. 전역 변수라도 클래스 밖으로 나가면 일반적인 프로그래밍 언어에선 인식을 못하거든요


그러면 이 $logo_count 변수는 대체 어디에서 만들어져 있느냐, 하면 Main 스크립트에 있습니다.


begin

  # 트란지션 준비

  Graphics.freeze

  #로고 화면 표시 카운터

  $logo_count = false

  # 씬 오브젝트 (타이틀 화면)를 작성

  $scene = Scene_Title.new

  # $scene 가 유효한 한계 main 메소드를 호출한다

  while $scene != nil

    $scene.main

  end

  # 페이드아웃

  Graphics.transition(20)

rescue Errno::ENOENT

  # 예외 Errno::ENOENT 를 보충

  # 파일을 오픈할 수 없었던 경우, 메세지를 표시해 종료한다

  filename = $!.message.sub("No such file or directory - ", "")

  print("파일 #{filename} 가 발견되지 않습니다.")

end


이렇게 해주시면 게임 켤 때에만 로고 화면을 보실 수 있습니다.
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 초급강의실 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 7381 1
131 중급강의실 게임제작에 대한 모든것! 게임제작지침서 강좌링크입니다. (1~18강) 2 마둠 2013.09.23 2053 0
130 초급강의실 게임의 퀼리티를 높이자! 3편-맵배치 2 ifeve 2016.04.08 4962 2
129 초급강의실 게임의 퀼리티를 높이자! 2편-진행불가 7 file ifeve 2016.01.25 13236 0
128 초급강의실 게임의 퀼리티를 높이자! 1편-표지판 9 file ifeve 2016.01.18 4929 0
127 고급강의실 게임도중에 익스플로러 뜨게 하고싶나요? 7  운 2014.01.27 1278 0
» 고급강의실 게임 시작 전에만 로고를 띄우게 하는 팁 3 마니아 2013.09.17 2933 1
125 고급강의실 [필독]RPG MAKER MV 안드로이드 APK파일로 뽑아내는 방법! 4 안경포스 2015.10.26 10800 2
124 고급강의실 [투달이의 아무짝에도 쓸모없는 강좌] Scene_title을 조작해 사람들을 농락해보자! 6 투달 2013.09.30 2123 0
123 중급강의실 [초보]누구나 할수있는 맵효과! 18 GM봉래산 2013.09.30 3752 5
122 초급강의실 [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에. 케이디 2018.09.10 2398 0
121 고급강의실 [소공지] 플러그인 무작정 해드린다 진행해봅니다. 2 천무 2015.12.09 677 0
120 중급강의실 [상급강좌]VX 폰트 변경하기 1 양쭌 2015.07.12 1794 0
119 고급강의실 [동영상] 스크립트 나도좀 잘해보자 -1- 1 file 천무 2016.02.04 1713 1
118 초급강의실 [동영상] 게임을만들자 (8편) - 맵에 포그, 광원적용 - 2 file 천무 2016.02.27 2268 0
117 초급강의실 [동영상] 게임을만들자 (7편) - 열쇠로 여는 문 만들기 - 3 file 천무 2016.02.23 3140 0
116 초급강의실 [동영상] 게임을만들자 (6편) - 맵배치 초보강좌 - 2 file 천무 2016.02.17 2675 0
115 초급강의실 [동영상] 게임을만들자 (5편) - 퀘스트 만들기 - 3 file 천무 2016.02.11 3832 1
114 초급강의실 [동영상] 게임을만들자 (4편) - 마을과 상점을 만들자- file 천무 2016.02.10 1753 0
113 초급강의실 [동영상] 게임을만들자 (3편) - 필드에 보이는 몹 만들기- 1 file 천무 2016.02.10 1957 1
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)