查看: 4178|回复: 11

[已经解决] 伤害美化脚本有些不是很明白

  [复制链接]
梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
回帖
343
发表于 2009-9-30 21:20:55 | 显示全部楼层 |阅读模式

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

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

×
  1.   # 如果伤害值是数值

  2.       if value.is_a?(Numeric)

  3.         # 绝对值转为字符串

  4.         damage_string = value.abs.to_s

  5.       else

  6.         # 转为字符串

  7.         damage_string = value.to_s

  8.       end
复制代码
000000000000000000000000
000000000000000000000000
  1.         # 分割伤害值字符串

  2.         damage_array = damage_string.scan(/./)

  3.         damage_x = 81 - damage_string.size * 9
复制代码
请帮忙解析下上面的脚本
damage_string.scan(/./)
这句中的
.scan(/./)特别不明白,望详解
damage_x = 81 - damage_string.size * 9
也不懂为什么要这样设置,81减,有什么含义吗
  1. number = char.to_i

  2.           # 显示伤害数字

  3.           bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage"),

  4.             Rect.new(number*18 , rect_y, 18, 32))

  5.           # 后移一位

  6.           damage_x += 18 #伤害字体大小
复制代码
number = char.to_i
char是什么的变量呢
梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
回帖
343
 楼主| 发表于 2009-10-1 09:17:56 | 显示全部楼层
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
128 小时
注册时间
2009-1-28
回帖
2695
发表于 2009-10-1 09:23:46 | 显示全部楼层
.scan(/./)
从多字节字符串中取出1 个字节的方法

damage_x = 81 - damage_string.size * 9
计算哪个X坐标的数字才配对

炼金术的根本法则是等价交换。想要获得,必须失去同等价值的东西。每当烦躁的时候,煎熬在不想做却又正在做的烦心事中的时候,我就安慰自己,提醒自己做这些事情的目的所在,告诉自己不要忽略所获得或者即将获得的回报,物质的,精神的,肉体的,灵魂的回报!只做想做的事情,就会失去不想失去的东西。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
回帖
343
 楼主| 发表于 2009-10-1 12:24:00 | 显示全部楼层
number = char.to_i
char是什么的变量呢
回复

使用道具 举报

~琉璃の雪~<

梦石
0
星屑
49
在线时间
36 小时
注册时间
2008-11-6
回帖
3570
发表于 2009-10-1 13:54:04 | 显示全部楼层
char是字符串的意思
搜索to_i后,得知:
返回某符号所对应的整数。
应该就是读取伤害的整数值吧.
~现在开始自绘头像~
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2009-10-1 13:58:22 | 显示全部楼层
本帖最后由 IamI 于 2009-10-1 14:00 编辑
char是字符串的意思
搜索to_i后,得知:
返回某符号所对应的整数。
应该就是读取伤害的整数值吧.
夏季冰川 发表于 2009-10-1 13:54

= =错了是把char类型(在Ruby中,就是String类型)转换成数字(Fixnum)
scan/./的意思是,把string变为char的数组
整个来看,就是:
执行:伤害12345
=>变成String"12345"
=>变成Array["1","2","3","4","5"]
=>循环这个Array,在Array里面把String1再转化为Fixnum1
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

~琉璃の雪~<

梦石
0
星屑
49
在线时间
36 小时
注册时间
2008-11-6
回帖
3570
发表于 2009-10-1 14:01:39 | 显示全部楼层
谢谢II,难怪String里才有to_i的效果,好吧,54我吧.
~现在开始自绘头像~
回复

使用道具 举报

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
回帖
343
 楼主| 发表于 2009-10-1 23:22:06 | 显示全部楼层
执行:伤害12345
=>变成String"12345"
=>变成Array["1","2","3","4","5"]
=>循环这个Array,在Array里面把String1再转化为Fixnum1

那个,为什么要循环的呢
回复

使用道具 举报

小柯的徒弟

梦石
0
星屑
1925
在线时间
1157 小时
注册时间
2008-5-24
回帖
2994

贵宾

发表于 2009-10-1 23:41:01 | 显示全部楼层
  1. 那个,为什么要循环的呢
复制代码
乱入><

因为Array没有可以直接把里面字符串都转成数字的指令,于是需要逐个逐个拿出来转换。
回复

使用道具 举报

℃ake

梦石
0
星屑
50
在线时间
8 小时
注册时间
2009-6-6
回帖
670
发表于 2009-10-3 11:23:24 | 显示全部楼层
在我刚刚学RGSS的时候也不懂for..in的、
然后我理解成了给一个变量赋值n个数。
比如for i in 0..105
我当时是以为变量i的值同时为0、1、2、3、4、5……104.
但是,后来我才知道我错了。=.=
我爱66RPG,但我讨厌66.
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部