Project1
标题:
请问如何自动设置输出格式
[打印本页]
作者:
思考_William
时间:
2011-8-18 00:28
提示:
作者被禁止或删除 内容自动屏蔽
作者:
忧雪の伤
时间:
2011-8-18 01:02
本帖最后由 忧雪の伤 于 2011-8-18 01:10 编辑
module Kernel
def convert_integer(integer)
string = String integer
return string if string.size.eql? 2
return '0' + string if string.size.eql? 1
string[0, string.size - 2] = ''
return convert_integer string
end
end
复制代码
不支持
Float
。
返回
string
。
作者:
orzfly
时间:
2011-8-18 01:41
本帖最后由 orzfly 于 2011-8-18 02:12 编辑
module Kernel;def convert_integer(integer,length=4);return sprintf('%0'+length.to_s_old+'d',integer.to_i)[-length,length];end;end;class Fixnum<Integer;@@def_to_s||=false;((alias to_s_old to_s);@@def_to_s=true)unless(method_defined?(:to_s_old)|@@def_to_s);def to_s(*args);args.size!=0?to_s_old(*args):convert_integer(self);end;end
复制代码
像大部分脚本一样插入在Main前后,整个游戏都是4位数。真蛋疼。这个是蛋疼用的,能替换掉全局。
2楼的一行精简版在这里。
module Kernel;def convert_integer(integer,length=4);return sprintf('%0'+length.to_s_old+'d',integer.to_i)[-length,length];end;end
复制代码
这个的使用方法:在脚本中找到你要设置位数的那个变量的绘制(draw_text 后面的),比如角色的等级
我找到了Window_Base的
#--------------------------------------------------------------------------
# ● 水平的描画
# actor : 角色
# x : 描画目标 X 坐标
# y : 描画目标 Y 坐标
#--------------------------------------------------------------------------
def draw_actor_level(actor, x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
self.contents.font.color = normal_color
self.contents.draw_text(x + 32, y, 24, WLH, actor.level, 2)
end
复制代码
里面有个actor.level,把它改成convert_integer(actor.level, 2)就变成两位了。
同理下面的
#--------------------------------------------------------------------------
# ● HP的描画
# actor : 角色
# x : 描画目标 X 坐标
# y : 描画目标 Y 坐标
# width : 宽
#--------------------------------------------------------------------------
def draw_actor_hp(actor, x, y, width = 120)
draw_actor_hp_gauge(actor, x, y, width)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
self.contents.font.color = hp_color(actor)
xr = x + width
if width < 120
self.contents.draw_text(xr - 40, y, 40, WLH, actor.hp, 2)
else
self.contents.draw_text(xr - 90, y, 40, WLH, actor.hp, 2)
self.contents.font.color = normal_color
self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxhp, 2)
end
end
复制代码
把actor.hp改成convert_integer(actor.hp, 4),把actor.maxhp改成convert_integer(actor.maxhp, 4)。角色的HP就都变成4位显示了。
自己研究。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1