조회 수 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천무 Views7384 Votes1
    read more
  2. 아오오니처럼 따라오는 이벤트 만들기

    Date2013.12.11 Category중급강의실 By빙냥이 Views4358 Votes3
    Read More
  3. 발소리 강좌 ( + 주석포함 )

    Date2013.12.10 Category중급강의실 By빙냥이 Views1695 Votes1
    Read More
  4. 아이템을 새로 만들어내고싶어요!

    Date2013.12.01 Category중급강의실 By하프 Views1405 Votes0
    Read More
  5. 죽노의 RGSS 이것저것(1)

    Date2013.10.23 Category고급강의실 By죽은노예 Views2129 Votes1
    Read More
  6. 외부 캐릭터 그래픽과 타일셋 그래픽 게임 내에 적용하기

    Date2013.10.20 Category중급강의실 ByXanadu Views2246 Votes0
    Read More
  7. [초보]누구나 할수있는 맵효과!

    Date2013.09.30 Category중급강의실 ByGM봉래산 Views3752 Votes5
    Read More
  8. [투달이의 아무짝에도 쓸모없는 강좌] Scene_title을 조작해 사람들을 농락해보자!

    Date2013.09.30 Category고급강의실 By투달 Views2123 Votes0
    Read More
  9. RPG Maker XP 스위치조작하기

    Date2013.09.26 Category중급강의실 By 운 Views2690 Votes0
    Read More
  10. RPG Maker XP 암호화 하는법

    Date2013.09.25 Category중급강의실 By 운 Views1968 Votes0
    Read More
  11. 게임제작에 대한 모든것! 게임제작지침서 강좌링크입니다. (1~18강)

    Date2013.09.23 Category중급강의실 By마둠 Views2053 Votes0
    Read More
  12. RPGXP의 데미지 계산식 (Part 4. 힐과 크리티컬)

    Date2013.09.17 Category중급강의실 By마니아 Views2184 Votes2
    Read More
  13. RPGXP의 데미지 계산식 (Part 3. 보정편)

    Date2013.09.17 Category중급강의실 By마니아 Views1992 Votes2
    Read More
  14. RPGXP의 데미지 계산식 (Part 2. 스킬편)

    Date2013.09.17 Category중급강의실 By마니아 Views3760 Votes2
    Read More
  15. RPGXP의 데미지 계산식 (Part 1. 기본공격편)

    Date2013.09.17 Category중급강의실 By마니아 Views4544 Votes1
    Read More
  16. 나뚜루's - Sprite 클래스 파헤치기 [4]

    Date2013.09.17 Category고급강의실 By마니아 Views2040 Votes1
    Read More
  17. 나뚜루's - Sprite 클래스 파헤치기 [3]

    Date2013.09.17 Category고급강의실 By마니아 Views1503 Votes0
    Read More
  18. 나뚜루's - Sprite 클래스 파헤치기 [2]

    Date2013.09.17 Category고급강의실 By마니아 Views1781 Votes0
    Read More
  19. 나뚜루's - Sprite 클래스 파헤치기 [1]

    Date2013.09.17 Category고급강의실 By마니아 Views2086 Votes0
    Read More
  20. 나뚜루's - 배열, 이렇게도 만들 수 있다.

    Date2013.09.17 Category고급강의실 By마니아 Views2101 Votes0
    Read More
  21. 게임 시작 전에만 로고를 띄우게 하는 팁

    Date2013.09.17 Category고급강의실 By마니아 Views2933 Votes1
    Read More
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 Next
/ 10






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

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