2005.06.28 07:21

게이지바 위치

조회 수 249 추천 수 1 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
중간에 보면 super(0, 0, 204, 224) 라는 것이 있습니다.
여기서 앞에 두개를 조정해보세요....
x좌표와 y좌표이니 알아서 적정한 위치로 조정이 가능할꺼 같네요..
어딘지 정확한 위치가 찾기 힘드시면 Ctrl+F 아시죠??
그럼 수고하세요~


>캐릭터의 HP, SP, 그리고 경험치를 자동적으로 맵에서 게이지바로 표시하게 해주는 스크립트입니다. 액알 제작을 조금이나마 더 편하게 할 수 있게 되지요. 캐릭터의 이름, 레벨, 직업도 맵에서 같이 표시됩니다.
>
>이 스크립트의 가치는, 기존의 이벤트 커맨드를 사용해서 게이지를 만들어줘야 했던 번거로움을 덜어준다는 것입니다.
>
>
>파티원이 여러명일 경우 게임에서 L, R (Q, W)키를 누르면 어느 캐릭터의 게이지를 표시할지 바꿔줍니다.
>Main 위에 찔러넣으면 곧바로 적용됩니다.
>자작그림 파일을 사용할 경우 맨 끝의 주의사항을 읽으세요.
>
>
>리플 달아줘염~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>이건 그리고 메뉴에서 안겹치지만...렉 걸리는 거랑 속도는 좋은데...메뉴에서 겹치는것을
>비교하면서 만지다 보니 안겹치게 됐습니다..속도두 빠르고...ㅋㅋㅋ이건 제가 만든것임...
>
>
>#==============================================================================
># ■ Game_Actor
>#------------------------------------------------------------------------------
>#  엑터를 취급하는 클래스입니다. 이 클래스는 Game_Actors 클래스 ($game_actors)
># 의 내부에서 사용되어 Game_Party 클래스 ($game_party)로부터도 참조됩니다.
>#==============================================================================
>
>#==============================================================================
># ■ Window_Base
>#------------------------------------------------------------------------------
>#  게임중의 모든 윈도우의 슈퍼 클래스입니다.
>#==============================================================================
>
>class Window_Base < Window  
>#--------------------------------------------------------------------------
>  # ● 게이지바의 묘화
>  #     x    : 묘화처 X 좌표
>  #     y    : 묘화처 Y 좌표
>  #--------------------------------------------------------------------------  
>  def 게이지바그리기(현재포인트, 최고포인트, x, y, width, height = 30) #별도의 게이지바그림파일을 사용할 경우 교체
>    @풀게이지바색 = Color.new(255, 0, 0, 255) #빨간색으로 설정되어 있습니다. 게이지바가 꽉찼을 경우 보이지 않습니다.
>    @현재게이지바색 = Color.new(0, 100, 100, 255) #진한초록으로 설정되어 있습니다.
>    self.contents.fill_rect(x, y, width, height, @풀게이지바색)
>    self.contents.fill_rect(x, y, (width * 현재포인트) / 최고포인트, height, @현재게이지바색)
>  end
>end  
>class Game_Actor < Game_Battler
>  attr_reader   :exp_list
>end
>#==============================================================================
># ■ Window_Map_Name
>#------------------------------------------------------------------------------
>#  マップ名を表示するウィンドウです。
>#==============================================================================
>class Window_Map게이지 < Window_Base
>  attr_accessor :actor
>  #--------------------------------------------------------------------------
>  # ● オブジェクト初期
>  #--------------------------------------------------------------------------
>  def initialize(actor)
>    super(0, 0, 204, 224)
>    self.contents = Bitmap.new(width - 32, height - 32)
>    @actor = actor
>    @showing_time = 0
>  end
>#게이지 표시 화면
>  def 게이지
>    self.contents.clear
>    게이지바그리기(@actor.hp, @actor.maxhp, 0, 64, 172)
>    게이지바그리기(@actor.sp, @actor.maxsp, 0, 96, 172)    
>    #@actor.exp - @actor.exp_list[@actor.level] 현재렙 경험치 초기치에서 현재 경험치를 뺀값.
>    #즉, 게이지에서 표시되는 값이다.
>    #다음 렙의 경험치를 구한다.
>    #@actor.next_rest_exp_s.to_i+@actor.exp
>    #다음 렙의 경험치에서 현재렙 경험치 초기치를 뺀다.
>     #@actor.next_rest_exp_s.to_i+@actor.exp- @actor.exp_list[@actor.level]
>    게이지바그리기(@actor.exp - @actor.exp_list[@actor.level], @actor.next_rest_exp_s.to_i+@actor.exp - @actor.exp_list[@actor.level], 0, 128, 172)
>    draw_actor_class(@actor, 32, 32)
>    draw_actor_level(@actor, 96, 32)
>    draw_actor_name(@actor, 4, 0)
>    draw_actor_hp(@actor, 0, 64, 172)
>    draw_actor_sp(@actor, 0, 96, 172)
>    draw_actor_exp(@actor, 0, 128)
>  end
>end
>
>#==============================================================================
># ■ Scene_Map
>#==============================================================================
>class Scene_Map
>  #--------------------------------------------------------------------------
>  # ● メイン?理
>  #--------------------------------------------------------------------------
>alias thdo_main main
>  alias thdo_initialize initialize
>  def initialize
>    @actor_index = 0
>    thdo_initialize
>  end
>  def main
>    # 地名ウィンドウを作成
>    @actor = $game_party.actors[@actor_index]
>    @map게이지window = Window_Map게이지.new(@actor)
>    @map게이지window.opacity = 0
>    # ?す
>    thdo_main
>    # 地名ウィンドウを解放
>    @map게이지window.dispose
>  end
>  #--------------------------------------------------------------------------
>  # ● 프레임 갱신
>  #--------------------------------------------------------------------------
>  def update
>    # 루프
>    loop do
>      # 맵, interpreter, 플레이어의 순서에 갱신
>      # (이 갱신 순서는, 이벤트를 실행하는 조건이 채워지고 있을 때
>      #  플레이어에 일순간 이동할 기회를 주지 않는등의 이유로써 중요)
>      $game_map.update
>      $game_system.map_interpreter.update
>      $game_player.update
>      # 시스템 (타이머), 화면을 갱신
>      $game_system.update
>      $game_screen.update
>      # 플레이어의 장소 이동중이 아니면 루프를 중단
>      unless $game_temp.player_transferring
>        break
>      end
>      # 장소 이동을 실행
>      transfer_player
>      # 트란지션 처리중의 경우, 루프를 중단
>      if $game_temp.transition_processing
>        break
>      end
>    end
>    # 스프라이트 세트를 갱신
>    @spriteset.update
>    # 메세지 윈도우를 갱신
>    @message_window.update
>    # 게임 오버의 경우
>    if $game_temp.gameover
>      # 게임 오버 화면으로 전환하고
>      $scene = Scene_Gameover.new
>      return
>    end
>    # 타이틀 화면에 되돌리는 경우
>    if $game_temp.to_title
>      # 타이틀 화면으로 전환하고
>      $scene = Scene_Title.new
>      return
>    end
>    # 트란지션 처리중의 경우
>    if $game_temp.transition_processing
>      # 트란지션 처리중 플래그를 클리어
>      $game_temp.transition_processing = false
>      # 트란지션 실행
>      if $game_temp.transition_name == ""
>        Graphics.transition(20)
>      else
>        Graphics.transition(40, "Graphics/Transitions/" +
>          $game_temp.transition_name)
>      end
>    end
>    # 메세지 윈도우 표시중의 경우
>    if $game_temp.message_window_showing
>      return
>    end
>    # 엔카운트카운트가 0 으로, 엔카운트리스트가 하늘이 아닌 경우
>    if $game_player.encounter_count == 0 and $game_map.encounter_list != []
>      # 이벤트 실행중이나 엔카운트 금지중이 아니면
>      unless $game_system.map_interpreter.running?  or
>             $game_system.encounter_disabled
>        # 배틀 호출 플래그를 세트
>        $game_temp.battle_calling = true
>        $game_temp.battle_can_escape = true
>        $game_temp.battle_can_lose = false
>        $game_temp.battle_proc = nil
>        # 무리를 결정
>        n = rand($game_map.encounter_list.size)
>        $game_temp.battle_troop_id = $game_map.encounter_list[n]
>      end
>    end
>        
>    #다음 엑터에게
>    if Input.trigger? (Input::R)
>            unless $game_system.map_interpreter.running?  or
>             $game_system.menu_disabled
>      @actor_index += 1
>      @actor_index %= $game_party.actors.size
>      @map게이지window.actor = $game_party.actors[@actor_index]
>      @map게이지window.게이지
>      end
>    end
>    #전의 엑터에게
>    if Input.trigger? (Input::L)
>            unless $game_system.map_interpreter.running?  or
>             $game_system.menu_disabled
>      @actor_index += $game_party.actors.size - 1
>      @actor_index %= $game_party.actors.size
>      @map게이지window.actor = $game_party.actors[@actor_index]
>      @map게이지window.게이지
>      end
>    end
>#THDO스크립트 종료
>    # B 버튼이 밀렸을 경우
>    if Input.trigger? (Input::B)
>      # 이벤트 실행중이나 메뉴 금지중이 아니면
>      unless $game_system.map_interpreter.running?  or
>             $game_system.menu_disabled
>        # 메뉴 호출 플래그와 SE 연주 플래그를 세트
>        $game_temp.menu_calling = true
>        $game_temp.menu_beep = true
>      end
>    end
>    # 디버그 모드가 ON 또한 F9 키가 밀리고 있는 경우
>    if $DEBUG and Input.press? (Input::F9)
>      # 디버그 호출 플래그를 세트
>      $game_temp.debug_calling = true
>    end
>    # 플레이어의 이동중이 아닌 경우
>    unless $game_player.moving?
>      @map게이지window.게이지#THDO스크립트
>      # 각종 화면의 호출을 실행
>      if $game_temp.battle_calling
>        call_battle
>      elsif $game_temp.shop_calling
>        call_shop
>      elsif $game_temp.name_calling
>        call_name
>      elsif $game_temp.menu_calling
>        call_menu
>      elsif $game_temp.save_calling
>        call_save
>      elsif $game_temp.debug_calling
>        call_debug
>      end
>    end
>  end
>end
>
>
>
>주의 !!!!
>위 스크립트는 게이지바의 그림파일 없이 사용합니다. 별도로 게이지바 그림을 사용할 경우 위의 갈색으로 쓰여진 "게이지바그리기" 메소드를 아래 메소드로 교체해주세요.
>
>  def 게이지바그리기(현재포인트, 최고포인트, x, y, width, height = 30) #따로 게이지 그림 파일을 사용할 경우
>    @빈게이지바그림 = RPG::Cache.picture("빈게이지그림파일명")
>    @현재게이지바그림 = RPG::Cache.picture("게이지바그림파일명")
>    @빈게이지바 = Rect.new(x, y, width, height)
>    @빈게이지바 = self.contents.stretch_blt(@빈게이지바, @빈게이지바그림,  @빈게이지바그림.rect)
>    @현재게이지바 = Rect.new(x, y, (width * 현재포인트) / 최고포인트, height)
>    @현재게이지바 = self.contents.stretch_blt(@현재게이지바, @현재게이지바그림,  @현재게이지바그림.rect)
>  end
>
>그리고 빈게이지그림파일명이라고 된 곳에 게이지가 비어있을 때의 그림의 파일명을, 현재게이지바그림파일명이라고 된 곳에 게이지가 차있을 때의 그림의 파일명을 넣어주세요.
>
>
>
>이걸로 만들었거든요?? 근데.. 위치를 바꿀수 없을까요..?
>오른쪽아래로 내리고 싶은데.. 알려주세요
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
8827 힐다의 학자금퀘스트 스크립트 관련 질문 5 심심치 2014.10.11 1833
8826 흠...오프닝에 관한 질문인데요. 다크아머 2005.05.28 472
8825 흠...오프닝에 관한 질문인데요. Survivor-c 2005.05.28 620
8824 흠.. 케릭터가 안움직여져요.... 일당백 2005.08.20 465
8823 흠.. 케릭터가 안움직여져요.... 카리스 2005.08.20 372
8822 흠.. 케릭터가 안움직여져요.... ☆무적기사★ 2005.08.21 526
8821 흠.. 맵배치에 관해서.. 1 『덩키동크』 2006.02.20 441
8820 흠.. 맵배치에 관해서.. 아두 2006.02.20 421
8819 흠.. 궁금한거 하나 있는데요.. 1 다크진™ 2005.08.06 494
8818 흠.. rpg2003에 대해서 인데요 꼭좀 알려주시면... 재티s 2005.11.06 976
8817 흠.. 2k만하다가 xp하려는데.. 1 잘생긴넘 2007.02.14 680
8816 흠,, 뭐가 문제인지좀,, 좌표의 이동에대해,, XLostTimesX 2006.01.10 433
8815 흠 그;;; 조건분기그런거 할때 쓰는 명령어좀~~ ☆무적기사★ 2005.08.05 497
8814 아마란스 2005.06.19 318
8813 ★RPG_Maker★ 2005.09.02 522
8812 흑흑 콩나물 2015.05.16 361
8811 흑인rpg왜없어짐? 2 자라토끼 2014.05.18 586
8810 흑백으로 만들기(RPG2003)(빠른답변부탁) 『덩키동크』 2006.05.25 1040
8809 흑백으로 만들기(RPG2003)(빠른답변부탁) 1 cyverjen 2006.05.25 1093
8808 흑룡님 사라진터전 최신판 없나요? 2 에에... 닉넴바뀨라네요.. 2014.06.22 414
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442


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

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