조회 수 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


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

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

    Date2016.01.12 Category초급강의실 By천무 Views7394 Votes1
    read more
  2. [RPGVX ACE] 소재규격과 강의수록

    Date2012.10.01 Category중급강의실 By비형랑 Views3274 Votes0
    Read More
  3. [동영상] RPG Maker MV 튜토리얼 강좌 3화 맵이동과 케릭터 모션

    Date2015.12.22 Category초급강의실 By작긔 Views3264 Votes1
    Read More
  4. [RPG VX ACE] 초심자강의

    Date2012.10.01 Category초급강의실 By비형랑 Views3169 Votes2
    Read More
  5. [동영상] 게임을만들자 (7편) - 열쇠로 여는 문 만들기 -

    Date2016.02.23 Category초급강의실 By천무 Views3141 Votes0
    Read More
  6. 변수를 이용한 식물 재배

    Date2017.05.28 Category초급강의실 ByMoonJ Views3077 Votes2
    Read More
  7. 찰드 제작강의 "3" -툴의 완벽한 이해를 위한 그날까지 No.1

    Date2011.09.02 Category중급강의실 By찰드 Views3058 Votes1
    Read More
  8. 게임 시작 전에만 로고를 띄우게 하는 팁

    Date2013.09.17 Category고급강의실 By마니아 Views2933 Votes1
    Read More
  9. [동영상] RPG Maker MV 튜토리얼 강좌 22화 랜덤 확률 변수

    Date2016.01.22 Category초급강의실 By작긔 Views2887 Votes2
    Read More
  10. RPG Maker VX Ace - Event 추가 하기/ Event Command 추가하기.

    Date2014.10.06 Category고급강의실 ByJunkMan Views2830 Votes0
    Read More
  11. [동영상] RPG Maker MV 튜토리얼 강좌 2화 이벤트와 대화창

    Date2015.12.22 Category초급강의실 By작긔 Views2803 Votes1
    Read More
  12. [동영상] RPG Maker MV 튜토리얼 강좌 15화 상자와 아이템

    Date2015.12.25 Category초급강의실 By작긔 Views2801 Votes1
    Read More
  13. [RPG2003] 한단계 도약 : 되풀이 처리

    Date2011.02.21 Category중급강의실 ByA. 미스릴 Views2774 Votes1
    Read More
  14. XP to MV 컨버터 사용법

    Date2015.12.28 Category고급강의실 By러닝은빛 Views2727 Votes0
    Read More
  15. RPG Maker XP 스위치조작하기

    Date2013.09.26 Category중급강의실 By 운 Views2690 Votes0
    Read More
  16. (ACE 기준)초보분들에게 유용한 10가지-1-

    Date2016.02.02 Category초급강의실 ByRPG란무엇인가? Views2689 Votes0
    Read More
  17. [RPG2003] 한단계 도약 : 변수 번호의 변수

    Date2011.02.22 Category중급강의실 ByA. 미스릴 Views2678 Votes0
    Read More
  18. [동영상] 게임을만들자 (6편) - 맵배치 초보강좌 -

    Date2016.02.17 Category초급강의실 By천무 Views2676 Votes0
    Read More
  19. RPG Maker VX Ace - RPG::Event의 구조.

    Date2014.10.05 Category고급강의실 ByJunkMan Views2662 Votes0
    Read More
  20. [동영상] RPG Maker MV 튜토리얼 강좌 19화 전투시스템

    Date2016.01.12 Category초급강의실 By작긔 Views2630 Votes1
    Read More
  21. [동영상] RPG Maker MV 튜토리얼 강좌 16화 아이템 응용

    Date2015.12.25 Category초급강의실 By작긔 Views2620 Votes3
    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(김원배) | 사신지(김병국)