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 쯔꾸르 mv 게임을 apk 파일로 변환했는데... 1 박하맛 2023.01.14 1330
8826 쯔꾸르 젖소이야기 결혼 방법좀 알려주세요... 2 백지씨 2021.12.20 2627
8825 apk포팅 승인 어케 하나요? game메이커xp 2021.11.29 1257
8824 Yanfly님의 Action Sequence Pack 질문드립니다 Neuromancer 2021.07.15 1541
8823 싸게 MV 를 먼저? 아니면 돈을 더 들어서라도 MZ? 2 Xatra 2021.07.06 1752
8822 RMMV - 스탯창과 대화창 변견 관련 질문입니다. (초보입니다 도움좀 주세요 ㅜㅜ) 2 scribble 2021.01.22 1553
8821 아오오니를 하는 사람인데요 질문 두가지가 있어요 1 오니개무서워 2021.01.16 1634
8820 재밌는게임 land_tnt 2020.12.07 1455
8819 c언어 질문 세종기항19 2020.11.10 1684
8818 코딩 질문 1 세종기항19 2020.11.08 1539
8817 혹시나 물어보는데 드래곤규 2020.11.07 1402
8816 오픈보 게임 더블드래곤 리로디드 얼티네이트에 대해 궁금 이부닝 2020.09.09 1224
8815 상태이상 확률 결정 스트레이보우 2020.09.02 1006
8814 다음 인디사이드 제작대회는 언제쯤 열릴까요? WOONAALAA 2020.05.23 963
8813 xp로 제작된 어플 실행자체가 안된다는 분이 있습니다.(제생각엔 apk로 변환하는 과정에서 버전자체가 낮은 것 같습니다) 1 라엔 2020.05.04 1415
8812 apk 포팅하는데 게임 이름이 필요합니다 뜨는데 1 kashu 2020.05.03 1350
8811 쯔꾸르VX Ace렉먹음 도와주세요... 랖랖 2020.03.22 1780
8810 안녕하세요 1 청월령 2020.02.14 834
8809 포팅 중 '게임 이름이 필요합니다' 오류 2 아이비스 2020.02.11 817
8808 RPGMV 거리 추적 1 정욱 2020.01.19 931
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(김원배) | 사신지(김병국)