Project1

标题: 碧轨地图显示中的位置如何更改呢? [打印本页]

作者: 77767264    时间: 2014-12-30 03:10
标题: 碧轨地图显示中的位置如何更改呢?
本帖最后由 77767264 于 2014-12-30 03:36 编辑


如图,人物血条什么的都是在左边,qw键在右边,我想把它们对调过来,脚本里我只找到了高度位置的修改,横向位置找不到在哪。。



这个是希望达到的效果。。

RUBY 代码复制
  1. #==============================================================================
  2. # ■ 碧の軌跡っぽいステータス表示
  3. #   @version 0.13 12/01/07
  4. #   @author さば缶
  5. #------------------------------------------------------------------------------
  6. #  マップ画面下にステータスが表示されます
  7. #
  8. #  ■用意するもの
  9. #    Graphics\System の下に Actor_bg1 ~ Actor_bg3
  10. #    Graphics\Faces の下に 顔グラを50%に縮小したファイル "通常のファイル名_s"
  11. #    例 Actor1.png → Actor1_s.png
  12. #    ※このファイルが存在しない場合、プログラムで縮小するため非常に荒くなります
  13. #
  14. #==============================================================================
  15. module Saba
  16.   module KisekiStatus
  17.     # このスイッチがONの場合、ステータスを表示します
  18.     INVISIBLE_SWITCH = 9 #使用开关
  19.  
  20.     # TPを表示する場合、true に設定します。
  21.     SHOW_TP = false
  22.   end
  23. end
  24.  
  25. class Window_KisekiStatus < Window_Selectable
  26.   #--------------------------------------------------------------------------
  27.   # ● オブジェクト初期化
  28.   #--------------------------------------------------------------------------
  29.   def initialize
  30.     super(0, Graphics.height-window_height+18, Graphics.width, window_height)
  31.     self.opacity = 0
  32.     self.visible = $game_switches[Saba::KisekiStatus::INVISIBLE_SWITCH]
  33.  
  34.     refresh
  35.   end
  36.   def refresh
  37.     @last_hps = []
  38.     @last_mps = []
  39.     @last_tps = []
  40.     super
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 項目数の取得
  44.   #--------------------------------------------------------------------------
  45.   def item_max
  46.     $game_party.battle_members.size
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● ウィンドウの高さを取得
  50.   #--------------------------------------------------------------------------
  51.   def window_height
  52.     item_height+32
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 項目の高さを取得
  56.   #--------------------------------------------------------------------------
  57.   def item_height
  58.     52
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 項目の幅を取得
  62.   #--------------------------------------------------------------------------
  63.   def item_width
  64.     return 70
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ● 桁数の取得
  68.   #--------------------------------------------------------------------------
  69.   def col_max
  70.     return $game_party.battle_members.size
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 項目の描画
  74.   #--------------------------------------------------------------------------
  75.   def draw_item(index)
  76.     actor = $game_party.battle_members[index]
  77.     rect = item_rect(index)
  78.  
  79.     #SR Q-Button
  80.     q_bitmap = Cache.system("Q_button")
  81.     contents.blt(484, 20, q_bitmap, q_bitmap.rect)
  82.  
  83.     #SR M-Button
  84.     w_bitmap = Cache.system("W_button")
  85.     contents.blt(444, 20, w_bitmap, w_bitmap.rect)
  86.  
  87.     bg_bitmap = Cache.system("Actor_bg1")
  88.     contents.blt(rect.x, rect.y, bg_bitmap, bg_bitmap.rect)
  89.  
  90.     small_bitmap = Bitmap.new(48, 48)
  91.     begin
  92.       bitmap = Cache.face(actor.face_name + "_s")
  93.     rescue
  94.     end
  95.     if bitmap == nil
  96.       bitmap = Cache.face(actor.face_name)
  97.       face_rect = Rect.new(actor.face_index % 4 * 96, actor.face_index / 4 * 96, 96, 96)
  98.       small_bitmap.stretch_blt(Rect.new(0, 0, 48, 48), bitmap, face_rect)
  99.     else
  100.       small_bitmap.blt(0, 0, bitmap, Rect.new(actor.face_index % 4 * 48,  actor.face_index / 4 * 48, 48, 48))
  101.     end
  102.     bitmap.dispose
  103.     clear_edge(small_bitmap)
  104.  
  105.     contents.blt(rect.x+2, 2, small_bitmap, Rect.new(0, 0, 48, 48))
  106.     small_bitmap.dispose
  107.  
  108.     if actor.dead?
  109.       bg_bitmap = Cache.system("Actor_bg1")
  110.       contents.blt(rect.x, rect.y, bg_bitmap, bg_bitmap.rect)
  111.       bg_bitmap = Cache.system("Actor_bg3")
  112.     else
  113.       bg_bitmap = Cache.system("Actor_bg2")
  114.     end
  115.     contents.blt(rect.x, rect.y, bg_bitmap, bg_bitmap.rect)
  116.  
  117.     draw_gauge(rect.x + 47, rect.y+20, 50, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
  118.     draw_gauge(rect.x + 42, rect.y+24, 50, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
  119.     if Saba::KisekiStatus::SHOW_TP
  120.       draw_gauge(rect.x + 37, rect.y+28, 50, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
  121.     end
  122.     @last_hps.push(actor.hp_rate)
  123.     @last_mps.push(actor.mp_rate)
  124.     @last_tps.push(actor.tp_rate)
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 顔画像の端を消します
  128.   #--------------------------------------------------------------------------
  129.   def clear_edge(bitmap)
  130.     22.times  { |i|
  131.       bitmap.clear_rect(0, i, 22 - i, 1)
  132.       bitmap.clear_rect(26 + i, i, 22 - i, 1)
  133.       bitmap.clear_rect(0, i + 26, i, 1)
  134.       bitmap.clear_rect(48 - i, i + 26, i, 1)
  135.     }
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ● ゲージの描画
  139.   #     rate   : 割合(1.0 で満タン)
  140.   #     color1 : グラデーション 左端
  141.   #     color2 : グラデーション 右端
  142.   #--------------------------------------------------------------------------
  143.   def draw_gauge(x, y, width, rate, color1, color2)
  144.     fill_w = (width * rate).to_i
  145.     gauge_y = y + line_height - 8
  146.  
  147.     contents.fill_rect(x-2, gauge_y-1, width+4, 4, text_color(15))
  148.     contents.fill_rect(x-1, gauge_y-2, width+2, 6, text_color(15))
  149.     contents.fill_rect(x, gauge_y, width, 2, gauge_back_color)
  150.     contents.gradient_fill_rect(x, gauge_y, fill_w, 2, color1, color2)
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● フレーム更新
  154.   #--------------------------------------------------------------------------
  155.   def update
  156.     super
  157.     if $game_switches[Saba::KisekiStatus::INVISIBLE_SWITCH] == true &&
  158.       ! $game_message.busy? && ! $game_message.visible
  159.       self.visible = true
  160.     else
  161.       self.visible = false
  162.       return
  163.     end
  164.     hps = []
  165.     mps = []
  166.     tps = []
  167.     for actor in $game_party.battle_members
  168.       hps.push(actor.hp_rate)
  169.       mps.push(actor.mp_rate)
  170.       tps.push(actor.tp_rate)
  171.     end
  172.  
  173.     if @last_hps != hps || @last_mps != mps || @last_tps != tps
  174.       refresh
  175.     end
  176.   end
  177. end
  178.  
  179. class Scene_Map
  180.   #--------------------------------------------------------------------------
  181.   # ● 全ウィンドウの作成
  182.   #--------------------------------------------------------------------------
  183.   alias saba_kiseki_status_create_all_windows create_all_windows
  184.   def create_all_windows
  185.     saba_kiseki_status_create_all_windows
  186.     @kiseki_status_window = Window_KisekiStatus.new
  187.   end
  188. end



仿碧轨地图显血.zip (635.75 KB, 下载次数: 98)

nc了,忘了把范例传上来了。。。补上
作者: 永燃的狂炎    时间: 2014-12-30 03:31
81改为
contents.blt(30, 20, q_bitmap, q_bitmap.rect)
85改为
contents.blt(45, 20, w_bitmap, w_bitmap.rect)
90改为
small_bitmap = Bitmap.new(395, 48)
117改为
draw_gauge(rect.x + 47, rect.y+20, 444, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
118改为
draw_gauge(rect.x + 42, rect.y+24, 444, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
120改为
draw_gauge(rect.x + 37, rect.y+28, 444, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1