메뉴관련
2005.01.29 11:36

디버그 창 만들기 (오류 검색)

조회 수 2594 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
이건 정말 아무 쓰잘떼기도 없는 짓입니다만...

RPG XP 엔진을 고치는데 관심이 가시는 분들은 써보세요.

캐릭터의 움직임을 수치로 표현하기 위해, 혹은 필요한 변수를 출력하여
눈으로 확인하고자 할 때,
전 디버그 창을 만들어서 썼습니다. -_-;

충돌 검사할 때 만든 소스이고 지금도 쓰고 있어요.
한번 써보시면 대략적인 RPG XP의 프로그래밍 방식을 알 수 있으실지도..

#-------------------------------------------------------------------
# Scene_Map 클래스에서 하겠습니다.
#-------------------------------------------------------------------

class Scene_Map
  #------------------------------------------------------------------
  # ● 메인 처리
  #------------------------------------------------------------------
  def main
    # 스프라이트 세트를 작성
    @spriteset = Spriteset_Map.new
    # 메세지 윈도우를 작성
    @message_window = Window_Message.new

    # !디버그 창 활성!
    dwin_new # <-- dwin_new라는 함수를 실행합니다.

    # 트란지션 실행
    Graphics.transition
    # 메인 루프
    loop do
      # 게임 화면을 갱신
      Graphics.update
      # 입력 정보를 갱신
      Input.update

      # !디버그 창 갱신!
      dwin_update # <-- dwin_update라는 함수를 실행합니다.

      # 프레임 갱신
      update
      # 화면이 바뀌면 루프를 중단
      if $scene != self
        break
      end
    end
    # 트란지션 준비
    Graphics.freeze
    # 스프라이트 세트를 해방
    @spriteset.dispose
    # 메세지 윈도우를 해방
    @message_window.dispose
    # 타이틀 화면으로 전환해 안의 경우
    if $scene.is_a?(Scene_Title)
      # 화면을 페이드아웃
      Graphics.transition
      Graphics.freeze
    end
  end

---------------------------------------------------------------------

dwin_new는 loop부분 위에,
dwin_update는 loop 내에 써주셔야합니다.

이 두개의 함수를 스크립트 맨 아래에 추가해줍니다.

#--------------------------------------------------------------------
  def dwin_new
    #dwin이라는 전역변수에 새로운 윈도우를 만듭니다.
    #Window_Base.new 오른쪽에 있는 수치는 각각,
    #x위치, y위치, width(길이), height(높이)를 나타냅니다.
    @dwin = Window_Base.new(0, 0, 640, 80)

    #dwin에 contents라는 내부변수를 만들고 그 안에 출력을 담당할
    #Bitmap을 작성합니다. Bitmap.new 오른쪽의 수치는 각각,
    #width, height를 나타냅니다.
    @dwin.contents = Bitmap.new(600, 40)
  end
  
  def dwin_update
      if $game_player.y < 3
        @dwin.y = 400
      end
      
      if $game_player.y > 11
        @dwin.y = 0
      end
      #위의 부분은 사소한 알고리즘입니다. -_-;
      #캐릭터가 화면 상단으로 가면 디버그 창은 아래로 가고,
      #캐릭터가 화면 하단으로 가면 디버그 창은 위로 갑니다.
    
      @dwin.contents.clear
      #Bitmap 내부를 싹 지웁니다.
    
      ax = $game_player.x #캐릭터의 x위치를 ax에 넣었습니다.
      ay = $game_player.y #캐릭터의 y위치를 ay에 넣었습니다.
      
      @dwin.contents.draw_text(2, 0, 100, 20, "x=" + sprintf("%.1f", ax).to_s, 0)
      @dwin.contents.draw_text(102, 0, 100, 20, "y=" + sprintf("%.1f", ay).to_s, 0)
      @dwin.contents.draw_text(202, 0, 150, 20, "chk=" + $game_player.chk.to_s, 0)
      @dwin.contents.draw_text(352, 0, 100, 20, "x to i=" + sprintf("%.1f", ax.to_i).to_s, 0)
      @dwin.contents.draw_text(452, 0, 100, 20, "y to i=" + sprintf("%.1f", ay.to_i).to_s, 0)
     #출력부분입니다. draw_text의 변수는 각각 x, y, width, height, contents, align입니다.
     #contents는 출력할 내용을 말합니다. sprintf함수를 쓴 이유는 충돌검사 알고리즘 강좌에서 알려드리죠.
     #align은 정렬 위치인데요. 0은 왼쪽으로, 1은 가운데로, 2는 오른쪽으로 정렬합니다.
  end

#--------------------------------------------------------------------

끝입니다. -_-;
지금 올린 이 소스는 8방향 이벤트 충돌 검사를 고치는 도중에 쓰던 디버그 창 소스에서 약간 헷갈리는 듯한 부분을 삭제하고 올린겁니다. -_-;

해보시면 참 재미있다는.... 음...
이걸 이용하면 시간이나 돈 출력을 파판처럼 할 수 있겠지요.

가장 기본적인 창 만들기 스크립트였습니다.
  • ?
    이루 2005.02.01 22:58
    에러 뜨군..
  • ?
    데카 2005.02.01 23:12
    컥! 이 소스에 에러가 있나요?
  • ?
    꽃미남김총명 2006.01.06 16:42
    NoMethod Error 가 뜨는군요

    chk 를 정의할 수 없다고 나오네요

    본문을 적으면 undefined method 'chk' fo #

    어떻게 해결하죠? (아 이거 C언어와 조금 비슷한 점이 있군요)

List of Articles
분류 제목 글쓴이 날짜 조회 수 추천 수
긴급상황 발생시 연락처 안내 독도2005 2012.11.28 2894 0
니오팅 이용 규칙 (2013.01.05 3차 개정) 7 file 소녀쿤 2012.01.15 16744 0
여러분의 의견을 받습니다. 21 file 니오팅 2010.01.29 4899 2
공지사항 일본어 스크립트를 번역하기 좋은 번역사이트 두곳입니다 ruby 2010.01.09 21581 0
공지사항 스크립트 게시판 관리자' ruby ' 입니다 ruby 2010.01.09 20541 0
공지사항 일본 스크립트/소스 공유 포럼 4 니오티 2010.01.05 21993 0
메뉴관련 간단한 링 메뉴 스크립트(처음올리는 스크립트) 1 lts1503 2011.05.22 2102 0
메뉴관련 메뉴에 얼굴 그래픽을 표현 2 file 니오티 2010.07.23 1775 0
메뉴관련 메뉴화면에 현재시각을 나타나게 하기 6 file windshy 2010.01.20 1478 0
메뉴관련 메뉴를 색다르게 바꿔보기 4 file windshy 2010.01.16 1744 0
메뉴관련 창고 시스템 5 루시아스 2010.01.05 1538 0
메뉴관련 아이템 소지정수 제한을 조정 1 루시아스 2010.01.05 1382 0
메뉴관련 링메뉴(원형메뉴) 설정하기 2 루시아스 2010.01.05 1411 0
메뉴관련 아이템창 분류별로 나누기 스크립트 3 file 아하하 2007.12.06 1650 2
메뉴관련 폰트 바꾸기 스크립트 5 아하하 2007.12.06 2419 9
메뉴관련 RPG XP 테스트플레이 할때 '뉴게임' '콘티뉴' '슛다운' 바꾸기 [중복이면 죄송] 12 이정한 2007.03.07 4074 18
메뉴관련 메뉴 반투명화 스크립트 2 windshy 2007.02.15 2224 4
메뉴관련 링메뉴 스크립트 16 windshy 2007.02.03 2916 4
메뉴관련 메인 메뉴, 기본아이콘으로 꾸미기. 4 니오티 2007.02.01 2257 3
메뉴관련 시작 메뉴 수정, 추가, 삭제하기 5 데카 2005.02.13 2625 8
메뉴관련 초기 선택창을 투명하게 만들기 9 데카 2005.01.29 2066 0
메뉴관련 디버그 창 만들기 (오류 검색) 3 데카 2005.01.29 2594 0
Board Pagination Prev 1 Next
/ 1

Copyright ⓒ Nioting All Rights Reserved. (since 1999)   개인정보취급방침