메뉴관련
2005.01.29 11:36

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

조회 수 2628 추천 수 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
분류 제목 글쓴이 날짜 조회 수 추천 수
공지사항 일본어 스크립트를 번역하기 좋은 번역사이트 두곳입니다 ruby 2010.01.09 22078 0
공지사항 스크립트 게시판 관리자' ruby ' 입니다 ruby 2010.01.09 20725 0
공지사항 일본 스크립트/소스 공유 포럼 4 니오티 2010.01.05 22249 0
이동관련 주인공 또는 npc 그림자 18 file 루비 2007.08.06 3144 5
메뉴관련 RPG XP 테스트플레이 할때 '뉴게임' '콘티뉴' '슛다운' 바꾸기 [중복이면 죄송] 12 이정한 2007.03.07 4153 18
제한변경 알피지 XP 래밸 9999되개 만들기 17 조한철ㅋ 2006.01.18 3482 8
장르변경 TBS 배틀(SRPG) 11 file 아디안 2007.02.27 3482 4
세이브 렉없는 자동세이브 스크립트. 7 샤이닉 2007.02.20 2407 8
기타 더욱더 간편하게! 에메스엔의 귀차니즘 탈출! 4 샤이닉 2007.02.20 2357 2
제한변경 소지금 한계 없애기 7 니오티 2007.02.20 2502 2
전투관련 턴알 게이지바 변경 스크립트 (HP/SP) 3 file 니오티 2007.02.20 3984 2
전투관련 게이지 확인창 스크립트 (HP/SP/EXP) 4 file 니오티 2007.02.20 3540 5
온라인 온라인스크립트 1.7 28 file 아디안 2007.02.16 5473 27
메뉴관련 메뉴 반투명화 스크립트 2 windshy 2007.02.15 2315 4
온라인 RPG XP 온라인 스크립트 25 file 니오티 2007.02.15 6859 6
메뉴관련 링메뉴 스크립트 16 windshy 2007.02.03 2978 4
이동관련 동료 따라오게 만들기 (파랜드 택틱스 3 형태) 15 니오티 2007.02.01 2858 4
맵관련 인터페이스에 현재 맵명 표기하기 17 니오티 2007.02.01 2797 3
기타 몬스터 도감 6 니오티 2007.02.01 2870 3
메뉴관련 메인 메뉴, 기본아이콘으로 꾸미기. 4 니오티 2007.02.01 2301 3
제한변경 저장 공간 15 슬롯으로 늘리기 4 니오티 2007.02.01 1996 2
기타 돈맡기기 시스템 8 히카루 2007.01.31 3325 2
기타 한글입력기 16 file 히카루 2007.01.31 14278 1
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

Copyright ⓒ Nioting All Rights Reserved. (since 1999)    개인정보
        

Fatal error: Cannot access property sessionController::$lifetime in /web/old/xe/modules/session/session.controller.php on line 45