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

Project1

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

[已经解决] 请问 模块 和类 的联系?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2015-5-18
帖子
30
跳转到指定楼层
1
发表于 2015-5-18 19:15:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
最开始 把他们搞混淆了,现在才发现不同。

然后 关键现在不知道 模块和类的联系是什么?

我看到模块里有 全局变量 = 类.new  

但是没看到  游戏 运行运行怎么就 跑类的功能里面去了。

  
  我意思就是 想知道他们的联系

  
   诸如 自己编辑个 class 的脚本  后,在哪里插入个什么句子 就能够调用起来之类的。(新人请耐心教导我)

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2015-5-18
帖子
30
2
 楼主| 发表于 2015-5-18 19:18:08 | 只看该作者
  自己编个 新的 模块

然后编个类

  main 函数 里面怎么不能像原版那样 RGSS MAIN{ xxxx.功能 } 运行起来? 说没有 声明的啥之类的意思


我自己编了个 class,但是 不知道怎么在 模块里面用起来。

我 想听人讲解, 主要一天学一些
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2015-5-18
帖子
30
3
 楼主| 发表于 2015-5-18 19:20:33 | 只看该作者
在线 坐等。

  主要看别人脚本太长了,有很多都是暂时不想知道的东西,不如直接 问人

如果没人说 那就 明天自己再慢慢看吧

点评

能够清楚的解答这个的触触们并不是随时都在呢,耐心等等吧。  发表于 2015-5-18 19:25
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2015-5-18
帖子
30
4
 楼主| 发表于 2015-5-18 19:24:11 | 只看该作者
直接  
在模块里面

  XX = 类.new
xx.类的功能  怎么怎么?

我看到模块里面才 self.功能  这样定义

  他们其实只是和 类里面 样子长得不一样么?

还是要高一级的类就是模块的感觉?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

5
发表于 2015-5-18 20:36:43 | 只看该作者
本帖最后由 cinderelmini 于 2015-5-19 11:21 编辑

模块和类没有啥必然的联系,←此行误人子弟快去死!
BY 喵呜喵5:Class类继承了Module类,类是加强了的模块。

模块一般用来定义一些(全局)会广泛用到的东西,参考Vocab和Cache,
类的功能单纯看它的内容和用在什么地方,Window就是窗口,Sprite类就是精灵(姑且理解为图片?),Scene类就是(可互动性操作的)界面。

一般来说,
  1. @xx = XXX.new
复制代码
这样的基本调用类句式很常见,
至于
  1. @xx.a
  2. @xx.b
  3. @xx.c(n)
复制代码
此类的句子,一般是用来调用前面提到的XXX类里面的各种方法,
见到这种句式的话可以在XXX类里面找到对应的a,b,c方法。

至于全局变量
  1. $xxx = XXX.new
复制代码
这种句式,道理是一样的,单纯是为了可以在游戏全局里使用$xxx这个变量而已。

(能表达的只有这样了,能力有限~

点评

诶嘿嘿~~原来还有这样的联关系~被调教惹好开心~  发表于 2015-5-19 11:18
类是加强了的模块  发表于 2015-5-18 20:54
Class类继承了Module类  发表于 2015-5-18 20:53

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

6
发表于 2015-5-18 22:10:06 | 只看该作者
本帖最后由 VIPArcher 于 2015-5-18 22:14 编辑

能力有限,只能解释成这样了,有错误请指出
Class继承了Module,拥有Module的全部方法,并且还拥new方法,可以生产实例。
Class调用new方法生成实例时会将new方法的全部参数原封不动地传给initialize方法。
Module不能生成实例,并且不能继承,但是Moduleinclude方法可以把自己混入到其他模块或者类,以此实现类似继承的功能
Class不能使用include把自己混入其他类里,可以被Module混入,可以使用继承
模块里的方法通常都会定义成
RUBY 代码复制
  1. Module VIPArcher
  2.   def self.hei
  3.     $m5script = 0
  4.   end
  5. end
这样就可以直接VIPArcher.hei 来调用了。
像i下面这样定义的方法
RUBY 代码复制
  1. Class VIPArcher
  2.   def hei
  3.     $m5script = 0
  4.   end
  5. end
只能被VIPArcher类的实例调用 VIPArcher.new.hei 但是Class 也是可以定义self.hei这样的 类方法 的。
然而我这里写了一堆废话呢。(其实我的重点在 $m5script = 0

点评

哦 谢谢。 了解到了 很多我还不知道的  发表于 2015-5-19 19:25

评分

参与人数 2星屑 +20 梦石 +1 收起 理由
taroxd + 1 认可答案
Mr.Jin + 20

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9727
在线时间
3227 小时
注册时间
2011-3-24
帖子
739

开拓者

7
发表于 2015-5-19 13:18:34 | 只看该作者
首先 类 类继承于 模块 类,
类可以实例化生成对象。
另外,ruby的类是单继承的,但可以利用模块实现多重继承。
  1. module m1
  2.         def f1
  3.                 return true
  4.         end
  5.         instance_method :f1
  6. end
  7. module m2
  8.         def f2
  9.                 return false
  10.         end
  11.         instance_method :f2
  12. end
  13. class c1
  14.         include m1
  15.         include m2
  16. end
  17. test = c1.new
  18. p test.f1
  19. p test.f2
复制代码
>>→Lanza Games 2020←<<
Lanza Schneider
浪子心,孤星梦永远流浪……
~不会放弃,我的精力永远充沛~
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2015-5-18
帖子
30
8
 楼主| 发表于 2015-5-19 19:21:49 | 只看该作者
本帖最后由 些芒果兮维码藏 于 2015-5-19 20:20 编辑
Mr.Jin 发表于 2015-5-19 13:18
首先 类 类继承于 模块 类,
类可以实例化生成对象。
另外,ruby的类是单继承的,但可以利用模块实现多重继承 ...


哦, 大概了解了 , 谢谢 指教 。


   额 刚刚的一大串问题我自己学习了一下F1 和尝试了一下,大概了解了
  目前想知道的 还是有两个问题:

问题1 :

  我用 loop do   
          Graph…… .update
         Input。updat #大概这个意思
    然后判定, 设置, 截取对应的 行走图
   end
  我发现可以成功, 但是图片 是一闪一闪的,不是持续的。 是怎么回事? 是直接用rect.set(  ,,,) 那个 效率导致的还是  需要先像缓存那样放
  还是 用的其他什么函数? 我大概看了一下,根据目前的理解
  好像原版里面也相当于是 直接用的 rect.set(计算后的结果) 这样的,可是没有一闪一闪的。
还是只是背景图片没有设定是黑的 所以看起来是那样的? 还是怎么回事?
求指点


问题2  暂时忘记了

点评

有个Cache模块,你检查一下图片是不是通过它载入的  发表于 2015-5-19 21:12
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2015-5-18
帖子
30
9
 楼主| 发表于 2015-5-19 19:39:23 | 只看该作者
本帖最后由 些芒果兮维码藏 于 2015-5-19 20:35 编辑


  @变量 是用在 class 里面的 内部变量吗?
 
@@变量 只是名字不一样还是怎么?求解释

点评

基本上我个人的建议是不要使用 @@ 变量,因为你不容易弄懂他的概念,即使你弄懂了,它本身也并不好用并且容易出问题  发表于 2015-5-19 22:15
并不是的  发表于 2015-5-19 21:39
楼上的意思就是说 @@变量 只是一个名字变了的普通变量?  发表于 2015-5-19 21:34
第一个是实例变量,理解它时,认为它是某一实例的属性。类变量不属于某个实例,它属于类,比如某个实例改变了类变量,其它实例调用时,会是改变后的值  发表于 2015-5-19 21:11
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 02:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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