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

Project1

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

[已经解决] 请教在定义一个Class时def main 和 def initialize的区别

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
跳转到指定楼层
1
发表于 2021-8-17 06:30:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
每次想写一个Class都不知道该怎么设计框架,def main里该放什么def initialize里该放什么也分不清楚,


还请大家指点一二,集思广益,多谢了!

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
3
 楼主| 发表于 2021-8-24 05:54:41 | 只看该作者
本帖最后由 taeckle 于 2021-8-24 16:46 编辑
RyanBern 发表于 2021-8-17 08:34
intialize 是初始化时会自动调用的方法,当执行 Xxxx.new 时,new 后面的参数会在构建对象的时候传递给 ini ...


大神请问下def initialize里面设置的东西是不是从游戏初始化的$game_system  = Game_System.new开始直到游戏结束只会运行1次啊?

点评

好的,多谢大神指点!  发表于 2021-8-25 18:08
是。  发表于 2021-8-25 02:09
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2021-8-17 08:34:51 | 只看该作者
intialize 是初始化时会自动调用的方法,当执行 Xxxx.new 时,new 后面的参数会在构建对象的时候传递给 initialize。
例如:
RUBY 代码复制
  1. class Foo
  2.   def initialize(n)
  3.     @n = n
  4.   end
  5. end

调用 a = Foo.new(3),initialize 这个方法就自动被执行了一次,结果就是生成了一个对象 a 且里面有个实例变量 @n = 3

main 没什么特殊的,就是一个普通方法。在 RMXP 会看到很多 main 的定义只是因为每次切换场景的时候会调用 main 这个方法。换句话说,只有在定义场景类 Scene_Xxxx 的时候才需要定义一下 main,以便于 RGSS 系统调用。其他的类不需要定义。

你可以看下 Main 组脚本,会发现 main 方法的调用。顺便理解一下 RGSS 是怎么切换不同的场景的。

点评

好的,大神给个相关链接吧,你在b站上的视频(https://www.bilibili.com/video/BV1Es411S7my?p=2&spm_id_from=pageDriver)好像没有这方面的讲解啊。。  发表于 2021-8-17 18:02
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 15:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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