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

Project1

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

[已经解决] self.x = x 读不懂...

[复制链接]

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
跳转到指定楼层
1
发表于 2013-3-17 21:40:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
它的格式完全不懂
Window_Base的
  def initialize(x, y, width, height)
    super()
    @windowskin_name = $game_system.windowskin_name
    self.windowskin = RPG::Cache.windowskin(@windowskin_name)
    self.x = x
    self.y = y
    self.width = width
    self.height = height
    self.z = 100
  end

猜测它是
让参数x等于 窗口的x坐标
不过目测是错的

点评

反了,请搞清楚赋值号的意义。  发表于 2013-3-17 21:53

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
发表于 2013-3-17 21:52:59 | 只看该作者
self.x =是当前window_xxx类的一个继承方法,继承于Window,就是有个def x以及def x=(x)这样的东西,self.x =调用的就是后者,再或者你可以理解成attr_accessor :x
x 是上面初始化时传递进来的第一个参数x

self.x = x
就是调用当前类的 def x=(x) 方法,然后让左边的等于右边的

self.x = 100
让当前窗口的x坐标等于100

评分

参与人数 2星屑 +103 收起 理由
hys111111 + 100 认可答案
怪蜀黍 + 3 精品文章

查看全部评分

我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
3
 楼主| 发表于 2013-3-17 21:57:28 | 只看该作者
亿万星辰 发表于 2013-3-17 21:52

我的理解其实就是
参数x =  Window的属性x
将右边的值赋予左边
对吗
另,膜拜大神啊啊啊啊啊啊啊!亲眼看到了大神啊啊啊啊啊啊!
用过好多您的脚本啊啊啊啊啊啊啊!
心情超激动的啊啊啊啊啊啊!!!!

评分

参与人数 1星屑 -10 收起 理由
hcm -10 冷静,冷静

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2013-3-18 09:00:07 | 只看该作者
a554187203 发表于 2013-3-17 21:57

“我的理解其实就是
参数x =  Window的属性x”


请注意在程序中 = 的意义,这个叫赋值号,不是等号,你上面的写法是错误的,参数x在这里属于被传递项,只可以在赋值号的右边,而左边是属性。

点评

+1 又见高中数学= = 感慨颇多... 祝我高考取得好成绩...  发表于 2013-3-19 21:34
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
5
 楼主| 发表于 2013-3-18 16:48:36 | 只看该作者
亿万星辰 发表于 2013-3-18 09:00
“我的理解其实就是
参数x =  Window的属性x”

...晕了
以下引用以下帮助
x = 3
y = 4
第一行和第二行是进行变量的赋值。其中 = 号是赋值运算符。和数学上使用等号表示「左边等于右边」的意思不同,这里表示「左边的变量代入右边的数值」。在上述示例中,第一行 x 变量和第二行 y 变量分别代入数值 3 和 4。

self.x = x   
这里继续引用以下帮助
在游戏库的说明中会使用到「属性」这个术语。这并不是 Ruby 语言的概念,而是 RGSS 的独特用语。

例如精灵的 X 座标(Sprite#x),可以像下例那样对其进行取得和设定。

x = sprite1.x         # 取得
sprite2.x = x + 32    # 设定

像这个 x 那样,可以使用赋值运算符进行取得(读取)和设定(写入)两方面运算的方法,方便起见就称之为属性。


我已经完全不懂参数x应该在哪里了,帮助的内容这些要改变数值的东西不是应该在左边的么
或者说实际要改变的数值是  属性x?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3588
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
6
发表于 2013-3-19 12:36:49 | 只看该作者
本帖最后由 yagami 于 2013-3-19 12:40 编辑

def initialize(x, y, width, height)
里的x,y是形参用来接收的
self.x = x 也就是把形参X赋给self.x 赋值是将右边赋到左边
打个比方 你应该见过x=1这样的 但你见过1=x不


def initialize(a, b, width, height)
    super()
    @windowskin_name = $game_system.windowskin_name
    self.windowskin = RPG::Cache.windowskin(@windowskin_name)
    self.x = a
    self.y = b
    self.width = width
    self.height = height
    self.z = 100
  end

所谓形参也就是形式参数 所以不一定要XY  换成这样 和原脚本效果是一样的 应该懂了吧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
7
 楼主| 发表于 2013-3-19 20:21:47 | 只看该作者
yagami 发表于 2013-3-19 12:36
def initialize(x, y, width, height)
里的x,y是形参用来接收的
self.x = x 也就是把形参X赋给self.x 赋值 ...

为什么x=1可以换成1=x呢?
其实主要关注的是这里
另外底下的高和宽也是同样的么

点评

1=x是不合法的。。。  发表于 2013-3-19 20:31
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3588
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
8
发表于 2013-3-19 20:48:36 | 只看该作者
a554187203 发表于 2013-3-19 20:21
为什么x=1可以换成1=x呢?
其实主要关注的是这里
另外底下的高和宽也是同样的么 ...

x = sprite1.x         # 取得
sprite2.x = x + 32    # 设定


这段不理解对吧

我来解释下

前面我假设 有段
sprite1.x = 1
然后 x = sprite1.x    将 sprite1.x 的值 赋给x  由此得出x=1
然后 sprite2.x = x + 32 将x的值也就是1带入
所以 sprite2.x = 1+32
      

点评

啊,主楼的是 self.x = x ,如果.x是属性的话,为什么要被一个还没有值的参数x赋值啊?  发表于 2013-3-20 22:23
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

9
发表于 2013-3-20 07:40:58 | 只看该作者
运算的时候先运算赋值号右边的东西,计算好以后,赋值给左边的。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
10
 楼主| 发表于 2013-3-20 20:13:12 | 只看该作者
yagami 发表于 2013-3-19 20:48
x = sprite1.x         # 取得
sprite2.x = x + 32    # 设定

把右边的值附给左边可以理解
无法理解的是,这里的参数x不是还没数值么
无数值的赋给一个属性真的可以吗
其实我一直没弄懂的就是这个了
就算再笨帮助也是有好好的看了的!

点评

x = sprite1.x 这里2个X是不同的 第一个x是变量 .x是调用x函数  发表于 2013-3-20 20:51
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 17:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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