查看: 2197|回复: 4

[已经过期] Window_BattleResul 的问题

[复制链接]
梦石
0
星屑
9058
在线时间
1860 小时
注册时间
2010-7-18
回帖
916
发表于 2012-8-18 22:12:51 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×

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

就是不管整体数据如何都显示都在中间, 这好像叫置中吧 , 能办到吗 ?

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2012-8-19 10:00:11 | 显示全部楼层
  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 时为右对齐。垂直方向则总为居中对齐。

点评

@exp.to_s 和 @gold.to_s 似乎不会动哪 只有字会动  发表于 2012-8-19 13:18

评分

参与人数 1星屑 +40 收起 理由
hcm + 40 感谢回答

查看全部评分

回复

使用道具 举报

梦石
0
星屑
9058
在线时间
1860 小时
注册时间
2010-7-18
回帖
916
 楼主| 发表于 2012-8-19 13:25:26 | 显示全部楼层

我想像的是 :

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

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

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

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

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2012-8-19 15:46:30 | 显示全部楼层
ms0688987 发表于 2012-8-19 13:25
我想像的是 :

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

draw_text(x, y, width, height, str[, align])
那你还需要调整一下它的宽度。因为这个也决定着它居中的位置。
回复

使用道具 举报

梦石
0
星屑
9058
在线时间
1860 小时
注册时间
2010-7-18
回帖
916
 楼主| 发表于 2012-8-19 18:43:23 | 显示全部楼层
[pre lang="ruby" line="1"]#==============================================================================
# ■ Window_BattleResult
#------------------------------------------------------------------------------
#  战斗结束时、显示获得的 EXP 及金钱的窗口。
#==============================================================================

class Window_BattleResult < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     exp       : EXP
  #     gold      : 金钱
  #     treasures : 宝物
  #--------------------------------------------------------------------------
  def initialize(exp, gold, treasures)
    @exp = exp
    @gold = gold
    @treasures = treasures
    super(160, 0, 320, @treasures.size * 32 + 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    y = 0
    self.back_opacity = 160
    self.visible = false
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 281, 32, @exp.to_s+" "+"Exp"+"   "+@gold.to_s+" "+"Gold",1)
    y = 32
    for item in @treasures
      draw_item_name(item, 4, y)
      y += 32
    end
  end
end
[/pre]

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部