查看: 2634|回复: 5

[已经解决] 咨询脚本语法

[复制链接]
梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2014-1-12 20:38:53 | 显示全部楼层 |阅读模式

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

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

×
在Window_Selectable这个类里,发现一种函数写法如下:
def xx1=(xx2)
比如def height=(height)、def active=(active)
问题如下:
1.  xx1=(xx2)中,xx1是否必须和xx2相等?例如def active=(active)能否改成def active1=(active2)
2.  def xx1=(xx2)这样代表什么意思?

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-1-12 20:46:17 | 显示全部楼层
类似attr_,让外部类能够修改这个实例变量的值,否则这个实例变量的值只能通过这个类的方法来修改:
类似下面这种感觉
@a = b.new
@a.c = 123
回复

使用道具 举报

梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
 楼主| 发表于 2014-1-12 22:03:24 | 显示全部楼层
喵呜喵5 发表于 2014-1-12 20:46
类似attr_,让外部类能够修改这个实例变量的值,否则这个实例变量的值只能通过这个类的方法来修改:
类似下 ...

那么,函数名是不是必须就等于变量名?
比如def height=(height),第一个height既是函数名,又必须是变量名(变量height)?后面那个height是参数值?

点评

不用啊,当成一个普通的方法来看就好了, 前面那个是方法名,括号里面是参数  发表于 2014-1-12 22:40
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-1-12 22:56:28 | 显示全部楼层
本帖最后由 喵呜喵5 于 2014-1-12 22:58 编辑

class a
  def 载入
    @a=0
    @b=0
  end
  def a的值=(c)
    @a=c
  end
  def 输出
    p @a
    p @b
  end
end


@sample=a.new
@sample.a的值=2
@sample.输出
@sample.b=2 #报错
@sample.a=2 #报错

点评

谢谢喵大  发表于 2014-1-13 10:31

评分

参与人数 1梦石 +1 收起 理由
Sion + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
 楼主| 发表于 2014-1-12 23:25:49 | 显示全部楼层
喵呜喵5 发表于 2014-1-12 22:56
class a
  def 载入
    @a=0

如果当作普通函数,我明白,你写的例子,我也看明白了,但是我回到Window_Selectable里看第84行开始
  1. #--------------------------------------------------------------------------
  2.   # ● 设置高度
  3.   #--------------------------------------------------------------------------
  4.   def height=(height)
  5.     super
  6.     update_padding
  7.   end
复制代码
这种函数还有父类函数super?我查遍全工程没看到父类函数有定义啊……

点评

调整窗口大小位置时用的self.x啊self.height之类的就是调用windows_base的父类windows的方法  发表于 2014-1-12 23:34
父类在windows里面,写在dll中,请看F1  发表于 2014-1-12 23:30
回复

使用道具 举报

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2014-1-13 22:58:48 | 显示全部楼层
def a=(a)
  @a = a
end

def a=(rpgmaker)
  @a = rpgmaker
end

这两个效果一样……但或许后一种会看着更直观一些。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部