Project1

标题: [Main组的问题]关于 $scene 的问题 [打印本页]

作者: 九靈    时间: 2013-8-22 13:27
标题: [Main组的问题]关于 $scene 的问题
本帖最后由 九靈 于 2013-8-22 13:34 编辑

首先在Main组里我们新建了一个  Scene_Title 类的实例 $scene

       $scene = Scene_Title.new

接着是判断

        while $scene != nil
           $scene.main
         end

-------------------------------------------------------------------------------

问题:

    为什么  $scene 的值不是 nil?

    $scene 的值是谁给的?

    脚本里并没有给他赋值啊!

    Scene_Title 类也没有重定义 initialize 方法
   
    Object 类的 initialize 方法好像也没对 $scene 赋值......

--------------------------------------------------------------------------------

之后我加了一条 print "#{$scene}"

        while $scene != nil
          print "#{$scene}"
           $scene.main
         end
         
结果是



而且 0x 之后的数字每次还不一样



再问 : 0x 那串是怎么来的? (似乎是16进制的)

而且窗口每次切换都会显示





-----------------------------------------------------------------------------
作者: satgo1546    时间: 2013-8-22 14:25
0x估计是内存编码……不管即可

作者: zhangbanxian    时间: 2013-8-22 14:32
$scene怎么没有赋值了,$scene = Scene_Title.new不就是...
作者: 恐惧剑刃    时间: 2013-8-22 15:32
场景类的实例是保存在 $scene 名称的全局变量中。这个变量只要值不是 nil 就能调用 main 名称的方法,是继续游戏运行的结构。
$scene = Scene_Title.new
生成Scene_Title的一个实例,因此$scene就不再是nil了。
  1. while $scene != nil
  2.     $scene.main
  3.   end
复制代码
只要游戏运行都会判断是否有场景存在,只要存在就调用那个场景的main方法。
作者: 无脑之人    时间: 2013-8-23 08:21
后面的0x******是object_id 我记得好像是和内存有关系= =对于每一个对象来说 他们的object_id都是不同的 如果相同则是同一个对象
作者: 九靈    时间: 2013-8-23 13:17
无脑之人 发表于 2013-8-23 08:21
后面的0x******是object_id 我记得好像是和内存有关系= =对于每一个对象来说 他们的object_id都是不同的 如 ...

原来跟内存有关
难怪每次都不一样...




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