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

Project1

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

[RMVX发布] 淘金鸭之类和对象的教程(一)(很无聊)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
98
在线时间
12 小时
注册时间
2008-4-29
帖子
461
跳转到指定楼层
1
发表于 2009-7-15 19:26:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RGSS里出现类和对象是我学习时搞不懂的..........希望zh99998不要删掉这个.
(不要以为教程是翻译的,绝对是名叫淘金鸭的那个傻瓜原创的)
(我很想把方法叫做函数…..)

def定义方法,以end结束
class定义类,以end结束
假设定义一个类
class Practice
  def class_system
       @coin = 10
  end
end
这时已经定义了一个类.
定义对象的方法:
对象名 = 类名.new
在RGSS和Ruby中是不分变量类型的,只分变量的作用域.
我们可以这样为我们的类定义对象: game_object = Practice.new
在类名后加.new即为生成新的该类的对象.
在我们的类中,def class_system是一个方法,这种方法在类中称为成员方法(好理解点就是方法成员)
但是我们初始化一个对象时并不生成class_system方法中的@coin = 10.
如果我们想在对象开始时就有coin这个变量,我们可以使用类变量:
class Practice
  @@coin = 10
end
这样对象初始化时,就有了一个名为coin的类变量(类变量的引用和定义要加@@,即@@coin).
但是使用类变量就是最好的做法吗?似乎有些多余,实例变量可以在类中所有函数调用,但是我们又想在对象初始化时就有coin这个变量,所以,我们要学到在类中非常重要的方法—初始化方法,初始化方法是在对象初始化时直接执行的方法.将我们的类改为:
class Practice
  def initialize
       @coin = 10
  end
end
这时再添加game_object = Practice.new
对象game_object中就有了@coin这个变量,无需像以前那样调用class_system .
使用对象中成员方法的方法:  对象名.方法名(参数)
方法的参数:
class Practice
  def class_system(coin_in)
    @coin = coin_in + 10
  end
end
现在又改变了类,我们发现class_system(coin),这是做什么的呢?其实是定义一个变量coin,这个变量只在方法class_system中有效!coin_in接收外部来的实际参数.
如果在该类下方添加这些:
game_coin = Practice.new
game_coin.class_system(55)
这样@coin就等于55+10也就是65.
初始化函数同样可以有参数:
class Practice
  def initialize(coin_in)
    @coin = coin_in+ 10
  end
end
game_coin = Practice.new(55)
这样game_coin中的@coin直接等于65.
现在我们编写一个计算税款的类,假设你的游戏中需要这个.
class Shuikuan    #类名,该类在知道税款的情况下计算税率.
  def initialize(shuliang,shuilv)  #初始化方法,有变量做税率和数量参数
    @shuikuan = shuliang * shuilv   #税款等于数量乘以税率         
  end
  def return_shuikuan             #返回税款的方法
    return @shuikuan             #将税款这个变量作为返回值返回
  end
end我们使用它可以这样:
shuikuan_obj = shuikuan.new(1000,0.02)
shuikuan = shuikuan_obj.return_shuikuan
该类有多此一举之嫌疑,仅作为学习使用.
如果希望我写下一篇教程请回帖说.
无视VIP

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
2
发表于 2009-7-15 20:52:55 | 只看该作者
嗯~!加油吧~
继续写下去~

感觉上有点乱,希望楼主整理一下~
也希望下次能过更正~嗯嗯~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
98
在线时间
12 小时
注册时间
2008-4-29
帖子
461
3
 楼主| 发表于 2009-7-19 15:43:35 | 只看该作者
啊,没人回帖,我去死吧
无视VIP
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2009-5-24
帖子
1761
4
发表于 2009-7-19 15:49:25 | 只看该作者
= = 不要去死,来 我给你炖了。。。
珍惜这最后的时间
6R必将新生
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 04:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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