조회 수 2969 추천 수 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


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

  1. 게임제작강좌 A-Z 색인 (2016.1.24 ver)

    Date2016.01.12 Category초급강의실 By천무 Views7877 Votes1
    read more
  2. [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에.

    Date2018.09.10 Category초급강의실 By케이디 Views2761 Votes0
    Read More
  3. RPG Maker MV에서 도트 느낌의 폰트 사용하기

    Date2018.07.15 Category초급강의실 By러닝은빛 Views5000 Votes1
    Read More
  4. [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! "

    Date2018.07.01 Category초급강의실 By수성의물 Views1895 Votes0
    Read More
  5. [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약

    Date2018.04.25 Category초급강의실 By이니군 Views850 Votes0
    Read More
  6. [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠

    Date2018.04.25 Category초급강의실 By이니군 Views913 Votes0
    Read More
  7. [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기

    Date2018.04.24 Category초급강의실 By이니군 Views2223 Votes1
    Read More
  8. 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정.

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1611 Votes0
    Read More
  9. 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용)

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1443 Votes0
    Read More
  10. [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인)

    Date2017.09.11 Category초급강의실 By이니군 Views1325 Votes0
    Read More
  11. RPG MAKER MV Tool Program-MADO 설치 및 적용기

    Date2017.09.08 Category초급강의실 By이니군 Views2536 Votes0
    Read More
  12. 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정)

    Date2017.08.28 Category초급강의실 By이니군 Views1708 Votes0
    Read More
  13. [RMMV] 크로노 엔진(Chrono Engine) 플러그인 사용법

    Date2017.07.16 Category고급강의실 By러닝은빛 Views3874 Votes2
    Read More
  14. 네코플에서 VXA 선택지 잘리는 버그 해결하는법

    Date2017.06.22 Category중급강의실 By심심치 Views1160 Votes2
    Read More
  15. 변수를 이용한 식물 재배

    Date2017.05.28 Category초급강의실 ByMoonJ Views3393 Votes2
    Read More
  16. 누구나 쉽게 따라할 수 있는 액션/슈팅 이벤트 만들기!

    Date2017.01.26 Category초급강의실 By이제리아 Views4530 Votes3
    Read More
  17. RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?-

    Date2016.10.31 Category중급강의실 ByRPG란무엇인가? Views2431 Votes0
    Read More
  18. 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편

    Date2016.04.17 Category중급강의실 By양갱님 Views36387 Votes10
    Read More
  19. 게임의 퀼리티를 높이자! 3편-맵배치

    Date2016.04.08 Category초급강의실 Byifeve Views5324 Votes2
    Read More
  20. Input 객체의 키코드 확장

    Date2016.04.05 Category초급강의실 By러닝은빛 Views1501 Votes0
    Read More
  21. 초보가쓰는 초보용 Rpg게임 만들기 (xp)

    Date2016.03.13 Category초급강의실 ByMarine Views6395 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10


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

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