Project1

标题: Window_BattleResul 的问题 [打印本页]

作者: ms0688987    时间: 2012-8-18 22:12
标题: Window_BattleResul 的问题

Window_BattleResul 这个视窗设计很奇怪, 数值越大排版越往右, 能改成在中间的吗 ?

就是不管整体数据如何都显示都在中间, 这好像叫置中吧 , 能办到吗 ?
dsu_plus_rewardpost_czw
作者: hys111111    时间: 2012-8-19 10:00
  1. def refresh
  2.     self.contents.clear
  3.     x = 4
  4.     self.contents.font.color = normal_color
  5.     cx = contents.text_size(@exp.to_s).width
  6.     self.contents.draw_text(x, 0, cx, 32, @exp.to_s,对齐方式)
  7.     x += cx + 4
  8.     self.contents.font.color = system_color
  9.     cx = contents.text_size("EXP").width
  10.     self.contents.draw_text(x, 0, 64, 32, "EXP",对齐方式)
  11.     x += cx + 16
  12.     self.contents.font.color = normal_color
  13.     cx = contents.text_size(@gold.to_s).width
  14.     self.contents.draw_text(x, 0, cx, 32, @gold.to_s,对齐方式)
  15.     x += cx + 4
  16.     self.contents.font.color = system_color
  17.     self.contents.draw_text(x, 0, 128, 32, $data_system.words.gold,对齐方式)
  18.     y = 32
  19.     for item in @treasures
  20.       draw_item_name(item, 4, y)
  21.       y += 32
  22.     end
  23.   end
复制代码
对齐方式:水平方向默认为左对齐,但是当 align 指定为 1 时为居中对齐,指定为 2 时为右对齐。垂直方向则总为居中对齐。


作者: ms0688987    时间: 2012-8-19 13:25

我想像的是 :

假如窗口长320 , 经验值和金钱整条假如长160

那么居中的情况应该是左右两边都空80才对

当然数值的大小会影响到经验值+金钱的长度

但是居中的情况左右空的位置应该也是对等大小

作者: hys111111    时间: 2012-8-19 15:46
ms0688987 发表于 2012-8-19 13:25
我想像的是 :

假如窗口长320 , 经验值和金钱整条假如长160

draw_text(x, y, width, height, str[, align])
那你还需要调整一下它的宽度。因为这个也决定着它居中的位置。
作者: ms0688987    时间: 2012-8-19 18:43
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Window_BattleResult
  3. #------------------------------------------------------------------------------
  4. #  战斗结束时、显示获得的 EXP 及金钱的窗口。
  5. #==============================================================================
  6.  
  7. class Window_BattleResult < Window_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #     exp       : EXP
  11.   #     gold      : 金钱
  12.   #     treasures : 宝物
  13.   #--------------------------------------------------------------------------
  14.   def initialize(exp, gold, treasures)
  15.     @exp = exp
  16.     @gold = gold
  17.     @treasures = treasures
  18.     super(160, 0, 320, @treasures.size * 32 + 64)
  19.     self.contents = Bitmap.new(width - 32, height - 32)
  20.     y = 0
  21.     self.back_opacity = 160
  22.     self.visible = false
  23.     refresh
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 刷新
  27.   #--------------------------------------------------------------------------
  28. def refresh
  29.     self.contents.clear
  30.     self.contents.font.color = normal_color
  31.     self.contents.draw_text(4, 0, 281, 32, @exp.to_s+" "+"Exp"+"   "+@gold.to_s+" "+"Gold",1)
  32.     y = 32
  33.     for item in @treasures
  34.       draw_item_name(item, 4, y)
  35.       y += 32
  36.     end
  37.   end
  38. end


咱程度只能把整串用在一行显示了 , 各种长度目前是可以居中了






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