Project1

标题: 请教一下距离问题 [打印本页]

作者: 负零    时间: 2013-3-12 21:01
标题: 请教一下距离问题
本帖最后由 负零 于 2013-3-13 17:49 编辑

这是描绘基本属性的图,这张图中的文字与数字间的距离设定在哪里处理,摸索半个小时无果,估计方向错了。另外为什么没有体现出“幸运”这属性?
  1.   #--------------------------------------------------------------------------
  2.   # ● 能力値の描画
  3.   #--------------------------------------------------------------------------
  4.   def draw_parameters(x, y)
  5.     self.contents.font.size=16
  6.     6.times {|i| draw_actor_param(@actor, x, y + line_height * i, i + 2) }
  7.   end
  8. end
复制代码

作者: j433463    时间: 2013-3-12 21:36
draw_actor_param

在 Window_Base 中,有两个 draw_text,第一个是蓝字的部份,第二个是白色数字的。

至于幸运,应该是在敏捷之下,可能窗口本身高度不够,幸运被挤在窗口外看不到。
作者: 负零    时间: 2013-3-12 22:57
我要摆两列的话怎么处理?请赐教!
作者: j433463    时间: 2013-3-12 23:36
  1.     3.times {|i| draw_actor_param(@actor, x, y + line_height * i, i + 2) }
  2.     3.times {|i| draw_actor_param(@actor, x + 右移多少值, y + line_height * i, i + 5 ) }
复制代码
应该是这样吧,我没测试,不过讲一下,3.times 是指处理三次,从 0 起算,所以是 0, 1, 2,

而能力值是从第三项物攻开始的,前面还有两项最大HP 和 最大 MP 没有用到,

第一行的三次处理,i+2 的第一次就是 0+2,第二次 1+2,第三次 2+2,

而第二行的三次处理 1+5 的第一次是 0+5 依此类推。


x, y 是座标,line_height 是行高,所以第二行的 x 要加上往右移的值,才会变成两列,

这右移的值多少您自己抓了。
作者: 负零    时间: 2013-3-13 17:48
谢谢您的解惑,这个不太类似于带光标的窗口,有自己相对独立的一个def 来控制列数,所以得先摸清这个的排序是怎样的。
作者: j433463    时间: 2013-3-13 18:10
菜单显示文字大多是用 draw_text 来做,一些 draw_ 开头的 def 查到最底结果都是在用 draw_text 在描绘文字,所以是有 x,y 座标的,而且很多都用 line_height 来控制下一行位置,默认的 line_height 是 24,有时您会看到 y + line_height,就是 y+ 24,但有时候 line_height 后面又乘以 0.5 或 1.3 这样微调行距,x 后面则大多是直接加数字,比较好辨认。
作者: j433463    时间: 2013-3-13 18:23
本帖最后由 j433463 于 2013-3-13 18:25 编辑

draw_text 的用法有两种,一种是比较常见的指定座标方式:
  1. draw_text(x, y, width, height, str[, align])
复制代码
参数有 x, y 座标,宽度 width,高度 height,要显示的字串 str,最后是可以不填的对齐方式,0 靠左对齐,1 置中对齐,2 靠左对齐

另一种是配合 rect 矩形区域的:
  1. draw_text(rect, str[, align])
复制代码
您要先设好 rect 才行,后面的参数和前一种一样。


如果文字串长度超过 rect 的宽度,会自动缩放为 60% 再描绘,所以字数太多时字会变窄变挤。




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