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

Project1

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

[推荐问答] 请教一个RPG Maker XP 里的F1的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
677
在线时间
115 小时
注册时间
2012-9-30
帖子
102
跳转到指定楼层
1
发表于 2014-6-24 11:27:28 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
实变量属于个体对象的变量称为实变量。名称以 @ 开头的变量,自动作为实变量使用。局部变量只有在 def ~ end 等结构内部使用时才有效,然而使用实变量的话,只要其对象存在,变量的值就会被保存。实变量一般作为对象的属性来使用。

class Person
  def name
    return @name
  end
  def name=(name)
    @name = name
  end
  def hello
    print "我是" + @name + ""
  end
end

alex = Person.new
alex.name = "艾力克斯"
alex.hello                  # => 我是艾力克斯

上面的示例是先准备 @name 实变量,使用 name、name= 方法把对象附加上 @name 实变量作为属性。像这样的方法称为附加属性。附加属性也能更简单的像下面那样编写。

  attr_accessor :name

这样编写是,自动定义与 : 符号右侧名称相同的实变量对应属性的取得和注解方法。上例中是生成 @name 实变量并附加成为属性。总之,

  def name
    return @name
  end
  def name=(name)
    @name = name
  end

是与上面相同的意思。

在预置脚本中 attr_accessor 应用得很多。但在只定义属性的取得方法的情况下,一般使用 attr_reader 代替 attr_accessor。


上面这段是F1帮助里面的原文但是我不太理解 @name = name这样定义属性是什么意思?有什么意义!

点评

要有引号……楼主先从基础的东西先看起吧……  发表于 2014-6-24 21:01

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

8
发表于 2014-6-25 11:40:18 | 只看该作者
他看懂了,估计汝亦能看懂,吾说得很详细了
https://rpg.blue/forum.php?mod=redirect&goto=findpost&ptid=322034&pid=2236183
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2749
在线时间
2630 小时
注册时间
2013-1-16
帖子
5657

贵宾

7
发表于 2014-6-24 22:29:26 | 只看该作者
wgr273 发表于 2014-6-24 22:27

看看F1里,它有个new
所以你这个p 之前要有个a = Person.new

点评

这样做就是能让你写a.name = "aaa"不报错……  发表于 2014-6-25 00:24
这样弄出来的结果是“aaa”,但是这样又有什么意义呢,我是说@name=name 这整个类包括方法的定义,这样做的意义是什么?是我后面可以直接用些什.  发表于 2014-6-25 00:05

评分

参与人数 1星屑 +1 收起 理由
怪蜀黍 + 1 这样做就是能让你写a.name = "aaa"不报错.

查看全部评分

(Created by @喵kano)


施工现场:hotege.github.io
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
677
在线时间
115 小时
注册时间
2012-9-30
帖子
102
6
 楼主| 发表于 2014-6-24 22:27:24 | 只看该作者
myownroc 发表于 2014-6-24 18:21
这个有def name=(name)
于是可以通过a.name = xxxx来随意设定
如果没有,那么就不能设定……


回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

5
发表于 2014-6-24 20:01:38 | 只看该作者
本帖最后由 taroxd 于 2014-6-24 20:08 编辑
taroxd 发表于 2014-6-24 12:37
敬请期待va区近期活动,会有详细的解释

活动预告在水区某个蓝色高亮的帖子


https://rpg.blue/thread-367097-1-2.html
届时不会让你失望的,请务必前来参观(虽然名为RGSS3,但基本的东西和XP是一样的)

脚本最基础的东西请参考:https://rpg.blue/thread-249826-1-1.html

F1帮助文档讲得太快太简略,会有不理解也是正常现象

点评

好吧  发表于 2014-7-10 22:15
虽然名为RGSS3,但基本的东西和XP是一样的  发表于 2014-7-10 16:48
这到底是XP区还是VA区啊  发表于 2014-7-10 15:56
稍微高级点的,就请期待活动吧  发表于 2014-6-25 06:11
亲,这些基础的东西我已经看了很多遍了,你发链接帖子里的东西都是看就知道的,可能不适合我了!有没有高级一点的教程呢,亲?  发表于 2014-6-24 22:20
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2749
在线时间
2630 小时
注册时间
2013-1-16
帖子
5657

贵宾

4
发表于 2014-6-24 18:21:11 | 只看该作者
  1. class Person
  2.    def name
  3.      return @name
  4.    end
  5.    def name=(name)
  6.      @name = name
  7.    end
  8.    def hello
  9.      print "我是" + @name + ""
  10.    end
  11. end
复制代码
这个有def name=(name)
于是可以通过a.name = xxxx来随意设定
如果没有,那么就不能设定……
可以测试看看

点评

让他看教程又不是让他用VA……  发表于 2014-6-24 21:04
↓感觉你在挖墙脚←_←  发表于 2014-6-24 21:03
我要办活动~\(≧▽≦)/~  发表于 2014-6-24 21:02
↓楼主好像才刚刚入门……  发表于 2014-6-24 21:02
↓ 但楼主没有理解你的说明  发表于 2014-6-24 20:57
(Created by @喵kano)


施工现场:hotege.github.io
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

3
发表于 2014-6-24 12:37:15 手机端发表。 | 只看该作者
本帖最后由 taroxd 于 2014-6-24 13:28 编辑

敬请期待va区近期活动,会有详细的解释

活动预告在水区某个蓝色高亮的帖子

我猜楼主看不懂楼上在说什么

点评

能这样子吗?跑到XP区里面宣传VA区的东西。  发表于 2014-7-10 15:54
VA区是什么活动,是逐行解释脚本内容的么?  发表于 2014-6-24 19:58
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2014-6-24 12:18:51 | 只看该作者
  def name=(name)
    @name = name
  end
颜色相同的注释:
方法名传入参数某实例变量@name
这样在外部操作这个对象时就可以用    对象名.name=(传入参数)   来完成方法中定义的操作

点评

外部操作是什么意思呢?  发表于 2014-6-24 19:57

  -fk: -azogi:
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-28 20:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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