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

Project1

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

[已经解决] 关于RGSS的问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2339
在线时间
568 小时
注册时间
2012-5-3
帖子
86

开拓者

跳转到指定楼层
1
发表于 2013-12-1 18:50:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
f1里面有个教程说
def name
return @name
def name = (@name)
@name = name
end
这一段代码到底是什么意思啊?望高手教教我理解下。
还有每段代码开头都有一段用构造函数initialize来初始化变量。
例子;class Person
           def initialize(name,age)
            @name = name
            @age = age
          end
为什么要初始化呢?

Lv2.观梦者

梦石
0
星屑
555
在线时间
111 小时
注册时间
2013-11-22
帖子
301
2
发表于 2013-12-1 18:57:32 | 只看该作者
第一个应该用来显示名字,必须定义才能显示呀

评分

参与人数 1星屑 +45 收起 理由
myownroc + 45 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3846
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
3
发表于 2013-12-1 19:01:38 | 只看该作者
第二个主要调用带参数的构造函数,否则不构造方法当然出错

点评

这是ruby……= =  发表于 2013-12-4 12:07

评分

参与人数 1星屑 +45 收起 理由
myownroc + 45 我很赞同

查看全部评分

《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
560
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
4
发表于 2013-12-1 19:11:58 | 只看该作者
1.相当于attr_accessor :name,定义一个属性
2.不初始化的话实例变量是nil

评分

参与人数 1星屑 +90 收起 理由
myownroc + 90 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2339
在线时间
568 小时
注册时间
2012-5-3
帖子
86

开拓者

5
 楼主| 发表于 2013-12-4 17:37:48 | 只看该作者
satgo1546 发表于 2013-12-1 19:11
1.相当于attr_accessor :name,定义一个属性
2.不初始化的话实例变量是nil

就是说要初始化才能调用这个类的这个属性是吧。不然这个变量的值就为nil?这么理解可以么?

点评

大概就是这样。  发表于 2013-12-4 18:00
我觉得是这样  发表于 2013-12-4 17:51
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2339
在线时间
568 小时
注册时间
2012-5-3
帖子
86

开拓者

6
 楼主| 发表于 2013-12-5 11:54:40 | 只看该作者
satgo1546 发表于 2013-12-1 19:11
1.相当于attr_accessor :name,定义一个属性
2.不初始化的话实例变量是nil

但是为什么这些东西我单独看能看懂。但是如果你让我自己连起来写一个独立的脚本就不会写了呢?我看默认脚本和别人写的脚本都是类似的结构。但是自己来写,就一点思路没有,不知道从何下手。。。

点评

因为其实很多东西都是方法的覆盖啥的,用预定义好的函数啊之类的,当然结构差不多了。  发表于 2013-12-5 18:02
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42360
在线时间
7600 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

7
发表于 2013-12-5 13:57:40 | 只看该作者
你不要被符号影响了,他这里定义成
  1. def name
  2. return @name
  3. end
复制代码
实际上你定义成
  1. def fux2
  2. return @name
  3. end
复制代码
也没问题,name是一个方法,用于读取@name实例变量
而attr_accessor实际上就是帮你省略了定义xx和xx=方法(还是有区别的,不过现在不需要在意

而初始化很显而易见很多实例变量需要一个初始值,
比如我定义了一个角色类,升级的时候必然是等级+1
但是如果等级没有初始化成一个数字,默认是nil的话,这个时候就会跳错
nil+1是不可能的。

评分

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

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2339
在线时间
568 小时
注册时间
2012-5-3
帖子
86

开拓者

8
 楼主| 发表于 2013-12-5 14:04:20 | 只看该作者
fux2 发表于 2013-12-5 13:57
你不要被符号影响了,他这里定义成实际上你定义成也没问题,name是一个方法,用于读取@name实例变量
而attr ...

原来如此。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 04:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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