Project1

标题: 窗口中等级的位置问题 [打印本页]

作者: KB.Driver    时间: 2015-4-26 22:58
标题: 窗口中等级的位置问题
在菜单界面以及其他功能界面中,等级的数字总是和前面隔得特别远,
要在哪里设置这段距离呢?


其实菜单中那个的设置方法似乎可以用选单编辑器来调,
但是升级加点支配中那个等级就没办法回到正常位置(类似的还有技能CP制等界面

究竟要怎样修复这些问题呢?



作者: VIPArcher    时间: 2015-4-26 23:11
本帖最后由 VIPArcher 于 2015-4-28 11:05 编辑

重定义一下这个方法Window_Base#draw_actor_level
大概某个脚本也重定义了这个方法,你把下面这个插到比较靠下的地方吧Main之前。
RUBY 代码复制
  1. class Window_Base < Window
  2.   #--------------------------------------------------------------------------
  3.   # ● 绘制等级
  4.   #--------------------------------------------------------------------------
  5.   def draw_actor_level(actor, x, y)
  6.     change_color(system_color)
  7.     draw_text(x, y, 32, line_height, Vocab::level_a)
  8.     change_color(normal_color)
  9.     draw_text(x + 32, y, 24, line_height, actor.level, 2) #修改这里的‘x + 32’更改等级数字的横坐标
  10.   end
  11. end

作者: KB.Driver    时间: 2015-4-29 00:25
本帖最后由 KB.Driver 于 2015-4-29 00:28 编辑

    @VIPArcher   
原来改的那段放到Window_Base 里,但是怎么改x+32 都没用
貌似是因为用了Yanfly菜单脚本……
Yanfly菜单脚本里描绘等级的部分就是下面的:

  1. def draw_actor_simple_status(actor, dx, dy)
  2.     dy -= line_height / 2
  3.     draw_actor_name(actor, dx, dy)
  4.     draw_actor_level(actor, dx , dy + line_height * 1)
  5.     draw_actor_icons(actor, dx, dy + line_height * 2)
  6.     dw = contents.width - dx - 124
  7.     draw_actor_class(actor, dx + 120, dy, dw)
  8.     draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw)
  9.     if YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && !actor.draw_mp?
  10.       draw_actor_tp(actor, dx + 120, dy + line_height * 2, dw)
  11.     elsif YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && actor.draw_mp?
  12.       if $imported["YEA-BattleEngine"]
  13.         draw_actor_tp(actor, dx + 120, dy + line_height * 2, dw/2 + 1)
  14.         draw_actor_mp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2)
  15.       else
  16.         draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw/2 + 1)
  17.         draw_actor_tp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2)
  18.       end
  19.     else
  20.       draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw)
  21.     end
  22.   end
复制代码
可是我不知道这个怎么改……它长得和版主大大给的那个一点也不像……

而如果直接改dx的话,会出现下面这种情况……


我希望缩小“Lv.”与后面数字的距离,要修改哪里呢?

作者: 午睡的风铃    时间: 2015-4-29 04:01
把draw_actor_level(actor, dx , dy + line_height * 1)注释掉
之后在下面加上
  1.     change_color(system_color)
  2.     draw_text(dx, dy + line_height * 1, 32, line_height, Vocab::level_a)
  3.     change_color(normal_color)
  4.     draw_text(dx + 32, dy + line_height * 1, 24, line_height, actor.level, 2)
  5.   #               ↑  改这里调整等级数字的位置
复制代码





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