Project1

标题: 请教在定义一个Class时def main 和 def initialize的区别 [打印本页]

作者: taeckle    时间: 2021-8-17 06:30
标题: 请教在定义一个Class时def main 和 def initialize的区别
每次想写一个Class都不知道该怎么设计框架,def main里该放什么def initialize里该放什么也分不清楚,


还请大家指点一二,集思广益,多谢了!
作者: RyanBern    时间: 2021-8-17 08:34
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 是怎么切换不同的场景的。
作者: taeckle    时间: 2021-8-24 05:54
本帖最后由 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次啊?






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1