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

Project1

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

[已经过期] 始终没办法理解SELF的用法

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2013-10-4
帖子
14
跳转到指定楼层
1
发表于 2013-10-23 21:25:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 dongzi416 于 2013-10-23 21:29 编辑

如下所示:设置MAXHP
def maxhp=(maxhp)
    @maxhp_plus += maxhp - self.maxhp   
@maxhp_plus = [[@maxhp_plus, -9999].max, 9999].min
    @hp = [@hp, self.maxhp].min
  end
请问有颜色的字具体怎么理解,怎么运算?


另外
def maxsp
    n = [[base_maxsp + @maxsp_plus, 0].max, 9999].min
    for i in @states
      n *= $data_states 【i】. maxsp_rate / 100.0
    end
    n = [[Integer(n), 0].max, 9999].min
    return n
  end
里的$data_states【i】表示状态的意思,如果i变化的话,读取到的信息分别为什么

Lv3.寻梦者

梦石
0
星屑
3583
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
2
发表于 2013-10-23 23:43:09 | 只看该作者
本帖最后由 yagami 于 2013-10-23 23:56 编辑

其实传参换下就好理解了
def maxhp=(x)
    @maxhp_plus += x - self.maxhp   #self.maxhp  实例调用maxhp 函数 由于原RGSS传参也是maxhp 才显式加self的
   #@maxhp_plus += x - maxhp  我用x做传参 就不会产生歧义了 所以这时self其实写不写都无所谓
    @maxhp_plus = [[@maxhp_plus, -9999].max, 9999].min
    @hp = [@hp, self.maxhp].min
end


在add_state 里 可以看到这句 @states.push(state_id)  所以不难猜测出@states数组里的元素 应该都是整型
假设@states=[1,3,7] 那么这个for循环就会依次取出$data_states[1] $data_states[3]  $data_states[7]  做下面的事情
$data_states  就是 $data_states数组里 i号位置的元素
这个数组保存的是State的实例的地址
取出来是个State类的实例 i 也就是对应数据库的状态编号

评分

参与人数 1星屑 +90 收起 理由
myownroc + 90 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 10:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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