Project1

标题: 伤害美化脚本有些不是很明白 [打印本页]

作者: flzt5354    时间: 2009-9-30 21:20
标题: 伤害美化脚本有些不是很明白
  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是什么的变量呢
作者: flzt5354    时间: 2009-10-1 09:17
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
作者: 霜冻之狼    时间: 2009-10-1 09:23
.scan(/./)
从多字节字符串中取出1 个字节的方法

damage_x = 81 - damage_string.size * 9
计算哪个X坐标的数字才配对
作者: flzt5354    时间: 2009-10-1 12:24
number = char.to_i
char是什么的变量呢
作者: 夏季冰川    时间: 2009-10-1 13:54
char是字符串的意思
搜索to_i后,得知:
返回某符号所对应的整数。
应该就是读取伤害的整数值吧.
作者: IamI    时间: 2009-10-1 13:58
本帖最后由 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
作者: 夏季冰川    时间: 2009-10-1 14:01
谢谢II,难怪String里才有to_i的效果,好吧,54我吧.
作者: flzt5354    时间: 2009-10-1 23:22
执行:伤害12345
=>变成String"12345"
=>变成Array["1","2","3","4","5"]
=>循环这个Array,在Array里面把String1再转化为Fixnum1

那个,为什么要循环的呢
作者: 「旅」    时间: 2009-10-1 23:41
  1. 那个,为什么要循环的呢
复制代码
乱入><

因为Array没有可以直接把里面字符串都转成数字的指令,于是需要逐个逐个拿出来转换。
作者: 奶油Da蛋糕    时间: 2009-10-3 11:23
在我刚刚学RGSS的时候也不懂for..in的、
然后我理解成了给一个变量赋值n个数。
比如for i in 0..105
我当时是以为变量i的值同时为0、1、2、3、4、5……104.
但是,后来我才知道我错了。=.=
作者: flzt5354    时间: 2009-10-3 14:13
for char in damage_array
我尝试改成
  char=damage_array
- -然后游戏打怪就会报错。。出现'2''5''5'之类的伤害数字
变量 char 的值按damage_array得范围变化
一直不理解是怎样执行的。。
作者: IamI    时间: 2009-10-5 10:10
你在改的那行(没改过)下面加个p char就会了解了……
Ruby当中没有for,只有for each




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