设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3344|回复: 2
打印 上一主题 下一主题

[已经解决] 战斗信息Battlelog的背景,能否自适应宽度?

[复制链接]

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
21010
在线时间
4886 小时
注册时间
2014-12-22
帖子
1527

开拓者

跳转到指定楼层
1
发表于 2017-2-2 20:54:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
就是显示xx使用了xx技能的那里
我想要这个背景的宽度根据文字的多少自动适应,可以做到么?要怎么写呢?
(我是原版战斗系统~)

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
21010
在线时间
4886 小时
注册时间
2014-12-22
帖子
1527

开拓者

3
 楼主| 发表于 2017-2-2 23:30:38 | 只看该作者
本帖最后由 shencao 于 2017-2-2 23:32 编辑
百里_飞柳 发表于 2017-2-2 21:44
默认的battlelog不是一行行绘制的,而且将需要显示的文字全部存入一个数组,再统一按照所有行数绘制出背景 ...


哇比我想象的复杂⋯⋯
已用。我把这个背景换成渐变了效果拔群!
“未排除转义符的宽度”这个确实,不过渐变的话也不太明显,某些地方我可以手动加空格来调整完全没问题~
十分感谢!
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34725
在线时间
6740 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

2
发表于 2017-2-2 21:44:37 | 只看该作者
默认的battlelog不是一行行绘制的,而且将需要显示的文字全部存入一个数组,再统一按照所有行数绘制出背景,绘制出文字
当有新的文字需要显示时,是先把文字加入数组最后一行,清除之前的东西,重新统一绘制
所以如果要改成每一行都是不同的长度的话,可以改成存入的是 [文字串,背景宽度] 的数组,再绘制背景时利用这个宽度去绘制

  1. #==============================================================================
  2. # 战斗信息窗口背景阴影适应字宽度
  3. #   by 老鹰
  4. #------------------------------------------------------------------------------
  5. # ※已测试
  6. # -直接修改了默认 Window_BattleLog 中的文字存储数组
  7. # -由 text 的数组 变更为 [text, text_width] 的数组
  8. # -请放在其他修改了BattleLog的脚本前,默认若无宽度记录,取窗口宽度
  9. #==============================================================================
  10. class Window_BattleLog < Window_Selectable
  11.   #--------------------------------------------------------------------------
  12.   # ● 添加文字
  13.   #--------------------------------------------------------------------------
  14.   def add_text(text)
  15.     bitmap = Bitmap.new(1,1)
  16.     rect = bitmap.text_size(text) #此处获取文字显示的矩形 注意:未排除转义符的宽度
  17.     #rect.x += 1 #此处可取消注释以调整背景的xy坐标
  18.     #rect.y += 1
  19.     @lines.push([text, rect.width]) #此处调节rect.width的传入值可调整宽度
  20.     refresh
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 替换文字
  24.   #    替换最后一段文字。
  25.   #--------------------------------------------------------------------------
  26.   def replace_text(text)
  27.     @lines.pop
  28.     add_text(text)
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 获取最下行的文字
  32.   #--------------------------------------------------------------------------
  33.   def last_text
  34.     @lines[-1][0]
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 刷新
  38.   #--------------------------------------------------------------------------
  39.   def refresh
  40.     draw_background
  41.     contents.clear
  42.     @lines.size.times {|i| draw_line(i) }
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● 绘制背景
  46.   #--------------------------------------------------------------------------
  47.   def draw_background
  48.     @back_bitmap.clear
  49.     @lines.size.times do |i|
  50.       @back_bitmap.fill_rect(back_rect(i), back_color)
  51.     end
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 获取背景的矩形
  55.   #--------------------------------------------------------------------------
  56.   def back_rect(line_number)
  57.     temp = @lines[line_number][1] == nil ? width : @lines[line_number][1]
  58.     Rect.new(0, padding + line_number * line_height, temp, line_height)
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 绘制行
  62.   #--------------------------------------------------------------------------
  63.   def draw_line(line_number)
  64.     rect = item_rect_for_text(line_number)
  65.     contents.clear_rect(rect)
  66.     draw_text_ex(rect.x, rect.y, @lines[line_number][0])
  67.   end
  68. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
RaidenInfinity + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 07:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表