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

Project1

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

[已经解决] 请问@scene = first_scene_class.new这是什么意思?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
跳转到指定楼层
1
发表于 2014-8-5 20:35:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RUBY 代码复制
  1. module SceneManager
  2.   #--------------------------------------------------------------------------
  3.   # ● 模块的实例变量
  4.   #--------------------------------------------------------------------------
  5.   [url=home.php?mod=space&uid=420706]@Scene[/url] = nil                            # 当前场景实例
  6.   @stack = []                             # 场景切换的记录
  7.   @background_bitmap = nil                # 背景用的场景截图
  8.   #--------------------------------------------------------------------------
  9.   # ● 运行
  10.   #--------------------------------------------------------------------------
  11.   def self.run
  12.     DataManager.init
  13.     Audio.setup_midi if use_midi?
  14.     @scene = first_scene_class.new
  15.     @scene.main while @scene
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 获取最初场景的所属类
  19.   #--------------------------------------------------------------------------
  20.   def self.first_scene_class
  21.     unless $BTEST
  22.       DataManager.setup_new_game
  23.     end
  24.     $BTEST ? Scene_Battle : Scene_Map
  25.   end



@scene = first_scene_class.new
first_scene_class
这个不是方法吗
方法也能和类一样用来生成实例对象?

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-8-5 20:39:14 | 只看该作者
本帖最后由 taroxd 于 2014-8-5 20:49 编辑

这个方法的返回值是一个类呢~
@Scene

举个栗子
  1. a = Object
  2. a.new # => Object.new
复制代码
那么 first_scene_class 返回一个类,我们也可以对这个类 .new ~、

写的长一点的话
  1. klass = self.first_scene_class # class 是关键字不能乱用
  2. @Scene = klass.new
复制代码

评分

参与人数 1星屑 +150 收起 理由
VIPArcher + 150 栗子~。~

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
3
 楼主| 发表于 2014-8-5 20:50:22 | 只看该作者
本帖最后由 九靈 于 2014-8-5 20:52 编辑
taroxd 发表于 2014-8-5 20:39
这个方法的返回值是一个类呢~

举个栗子那么 first_scene_class 返回一个类,我们也可以对这个类 .new ~、


def self.run
    DataManager.init
    Audio.setup_midi if use_midi?
    @Scene = (这里self. 是省掉了吗?)first_scene_class(所以程式运行到这里后就变成了Scene_Map or Scene_Battle).new(然后再生成实例的吗)
    @scene.main while @scene
  end
  #--------------------------------------------------------------------------
  # ● 获取最初场景的所属类
  #--------------------------------------------------------------------------
  def self.first_scene_class
    unless $BTEST
      DataManager.setup_new_game
    end
    $BTEST ? Scene_Battle : Scene_Map
  end

   
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-8-5 20:55:30 | 只看该作者
九靈 发表于 2014-8-5 20:50
def self.run
    DataManager.init
    Audio.setup_midi if use_midi?

很对,self省掉了,你的绿字说的都是对的。
还有什么问题吗?

点评

没了!谢谢  发表于 2014-8-5 20:57
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-21 11:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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