Project1

标题: 在進入選單時可看到經驗值條 [打印本页]

作者: WildDagger    时间: 2012-2-15 03:43
标题: 在進入選單時可看到經驗值條
本帖最后由 WildDagger 于 2012-2-19 00:56 编辑

說穿了這個是拿很多WINDOW_BASE內建的涵式改出來的
能夠在按ESC進入選單的時候看到EXP條。

RUBY 代码复制
  1. #===================================
  2. #  ●設定區域
  3. #===================================
  4.  
  5. module WD
  6. module Exp_Gauge
  7.   #EXP條COLOR,請修改成TEXT文字
  8.   EXP_GAUGE_COLOR1 = 6
  9.   EXP_GAUGE_COLOR2 = 14
  10.  
  11.   #EXP條文字顯示設定,true為打開,false為關閉
  12.   EXP_TEXT_DISPLAY = false
  13. end
  14. end
  15.  
  16. #==============================================================================
  17. # ■ Window_Base
  18. #------------------------------------------------------------------------------
  19. #  ゲーム中の全てのウィンドウのスーパークラスです。
  20. #==============================================================================
  21.  
  22. class Window_Base < Window
  23.   include WD::Exp_Gauge
  24.  
  25.   def exp_gauge_color1;   text_color(EXP_GAUGE_COLOR1);  end;    # EXP ゲージ 1
  26.   def exp_gauge_color2;   text_color(EXP_GAUGE_COLOR2);  end;    # EXP ゲージ 2
  27.  
  28.   #--------------------------------------------------------------------------
  29.   # ● シンプルなステータスの描画
  30.   #--------------------------------------------------------------------------
  31.   def draw_actor_simple_status(actor, x, y)
  32.     draw_actor_name(actor, x, y + line_height * 0.5)
  33.     draw_actor_level(actor, x, y - line_height * 0.5)
  34.     draw_actor_icons(actor, x, y + line_height * 1.5)
  35.     draw_actor_class(actor, x + 120, y - line_height * 0.5)
  36.     draw_actor_hp(actor, x + 120, y + line_height * 0.5)
  37.     draw_actor_mp(actor, x + 120, y + line_height * 1.5)
  38.     draw_actor_exp(actor, x, y + line_height * 2.5, EXP_TEXT_DISPLAY)
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● EXP の描画
  42.   #--------------------------------------------------------------------------
  43.   def draw_actor_exp(actor, x, y, display = true, width = 244)
  44.     this_level = actor.exp - actor.past_level_exp
  45.     next_level = actor.next_level_exp - actor.past_level_exp
  46.     draw_gauge(x, y, width, actor.exp_rate, exp_gauge_color1, exp_gauge_color2)
  47.     change_color(system_color)
  48.     if display
  49.       draw_text(x, y, 30, line_height, "EXP")
  50.       draw_current_and_max_values(x, y, width, this_level, next_level, mp_color(actor), normal_color)
  51.     end
  52.   end
  53. end
  54.  
  55. class Game_Actor < Game_Battler
  56.   #--------------------------------------------------------------------------
  57.   # ● EXP の割合を取得
  58.   #--------------------------------------------------------------------------
  59.   def exp_rate
  60.     this_level = exp - past_level_exp
  61.     next_level = next_level_exp - past_level_exp
  62.     next_level > 0 ? this_level.to_f / next_level : 0
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 前のレベルの経験値を取得
  66.   #--------------------------------------------------------------------------
  67.   def past_level_exp
  68.     @level > 1 ? exp_for_level(@level - 1) : 0
  69.   end
  70. end


需要的話,EXP條也可以拿去其他地方用,就看大家是怎麼想的了。
(玩過軒轅劍五後,會很想把技能、狀態與裝備全部合成在一個介面,所以正在朝能夠完全整合進一個「檢視」介面的方向研究中,應該會是從YEA的Equip腳本來改)

執行圖:

(旁邊有Load和System是因為我這個測試用專案裝了選單增加讀取檔案選項腳本與增加系統調整腳本。


2012/2/19 追加:
追加EXP_TEXT_DISPLAY選項,可以顯示EXP字串或者不顯示,單獨呼叫draw_actor_exp函式時亦可自行決定是否顯示EXP字串。
作者: 绿坝    时间: 2012-2-15 05:26
直观的经验条显示
LZ好周到
不过希望LZ能上传个截图这样子
比较好看些。
作者: zhengxinwu    时间: 2012-2-16 18:09
感觉真的微妙啊
没有感觉好空
有了又感觉好挤




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