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

Project1

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

[已经解决] 请问如何自动设置输出格式

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
10 小时
注册时间
2011-7-29
帖子
13
跳转到指定楼层
1
发表于 2011-8-18 00:28:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

2
发表于 2011-8-18 01:02:17 | 只看该作者
本帖最后由 忧雪の伤 于 2011-8-18 01:10 编辑


  1. module Kernel
  2.   def convert_integer(integer)
  3.     string = String integer
  4.     return string if string.size.eql? 2
  5.     return '0' + string if string.size.eql? 1
  6.     string[0, string.size - 2] = ''
  7.     return convert_integer string
  8.   end
  9. end

复制代码


不支持 Float
返回 string

点评

我那个是改了Fixnum的……Fixnum是Ruby的。F12一样出现了stack too deep。F12时Ruby的和RGSS内部库不会重载的。 不信自己挂去。  发表于 2011-8-18 02:13
追加定义了Fixnum中的to_s。如果不处理下F12会挂掉的……  发表于 2011-8-18 02:04
我做到了整个游戏都是4位数。……追加定义了Fixnum中to_s并加上F12优化。  发表于 2011-8-18 02:01
我更新了一个蛋疼的版本。  发表于 2011-8-18 01:57

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2 认可答案,恭喜你获得由66RPG提供的精美好.

查看全部评分

回复

使用道具 举报

Lv6.析梦学徒

Fuzzy Ginkgo
Taciturn Knight

梦石
0
星屑
60834
在线时间
1934 小时
注册时间
2010-6-26
帖子
1605

烫烫烫开拓者

3
发表于 2011-8-18 01:41:51 | 只看该作者
本帖最后由 orzfly 于 2011-8-18 02:12 编辑
  1. 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楼的一行精简版在这里。
  1. 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的
  1.   #--------------------------------------------------------------------------
  2.   # ● 水平的描画
  3.   #     actor : 角色
  4.   #     x     : 描画目标 X 坐标
  5.   #     y     : 描画目标 Y 坐标
  6.   #--------------------------------------------------------------------------
  7.   def draw_actor_level(actor, x, y)
  8.     self.contents.font.color = system_color
  9.     self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
  10.     self.contents.font.color = normal_color
  11.     self.contents.draw_text(x + 32, y, 24, WLH, actor.level, 2)
  12.   end
复制代码
里面有个actor.level,把它改成convert_integer(actor.level, 2)就变成两位了。
同理下面的
  1.   #--------------------------------------------------------------------------
  2.   # ● HP的描画
  3.   #     actor : 角色
  4.   #     x     : 描画目标 X 坐标
  5.   #     y     : 描画目标 Y 坐标
  6.   #     width : 宽
  7.   #--------------------------------------------------------------------------
  8.   def draw_actor_hp(actor, x, y, width = 120)
  9.     draw_actor_hp_gauge(actor, x, y, width)
  10.     self.contents.font.color = system_color
  11.     self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
  12.     self.contents.font.color = hp_color(actor)
  13.     xr = x + width
  14.     if width < 120
  15.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.hp, 2)
  16.     else
  17.       self.contents.draw_text(xr - 90, y, 40, WLH, actor.hp, 2)
  18.       self.contents.font.color = normal_color
  19.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  20.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxhp, 2)
  21.     end
  22.   end
复制代码
把actor.hp改成convert_integer(actor.hp, 4),把actor.maxhp改成convert_integer(actor.maxhp, 4)。角色的HP就都变成4位显示了。

自己研究。

点评

不会挂的……又不是RGSS内部库,Ruby的不会挂……  发表于 2011-8-18 02:08
F12优化是啥= =  发表于 2011-8-18 02:02
觉得这货展开来不比我的短吧……  发表于 2011-8-18 01:59
= =,这一行控也太……  发表于 2011-8-18 01:59
不用module function,Kernel的方法会被include到Object,而Object的方法本身就是任何对象都可以调用。  发表于 2011-8-18 01:48
我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 21:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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