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

Project1

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

[已经解决] [Main组的问题]关于 $scene 的问题

[复制链接]

Lv1.梦旅人

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

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

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

x
本帖最后由 九靈 于 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进制的)

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





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

Lv2.观梦者

梦石
0
星屑
560
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
2
发表于 2013-8-22 14:25:18 | 只看该作者
0x估计是内存编码……不管即可

点评

好吧... .new 时赋值 那 0x 那串是啥意思?  发表于 2013-8-22 14:50
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
帖子
1305
3
发表于 2013-8-22 14:32:50 | 只看该作者
$scene怎么没有赋值了,$scene = Scene_Title.new不就是...

点评

也是... 我犯傻了...  发表于 2013-8-22 15:58
谁说.new是赋值了? =是赋值啊- -b  发表于 2013-8-22 15:30
.new 就是赋值吗...... 我怎么没听说= =  发表于 2013-8-22 14:48
好歹当年也当过大魔王过,orz
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
4
发表于 2013-8-22 15:32:20 | 只看该作者
场景类的实例是保存在 $scene 名称的全局变量中。这个变量只要值不是 nil 就能调用 main 名称的方法,是继续游戏运行的结构。
$scene = Scene_Title.new
生成Scene_Title的一个实例,因此$scene就不再是nil了。
  1. while $scene != nil
  2.     $scene.main
  3.   end
复制代码
只要游戏运行都会判断是否有场景存在,只要存在就调用那个场景的main方法。

点评

简单的理解就是 : 只要$scene是某类的实例,那么$scene的值就不会是nil了。  发表于 2013-8-22 17:42
我只能说$scene不等效于Scene_Title.new,只是那个类的实例而已,更不等效于#<Scene_Title:0x******> 。  发表于 2013-8-22 16:18
好吧...谢谢!  发表于 2013-8-22 16:15
这要把我问挂了啊..一般只有字符串和数字才会那样显示。其他的东西,不只是场景包括窗口,要p的话都会0x****  发表于 2013-8-22 16:10
可以看成 $scene == Scene_Title.new == #<Scene_Title:0x******> 这样吗? 话说 0x****** 是怎么来的?  发表于 2013-8-22 16:02

评分

参与人数 1星屑 +90 收起 理由
︶ㄣ牛排ぶ + 90 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
5
发表于 2013-8-23 08:21:05 | 只看该作者
后面的0x******是object_id 我记得好像是和内存有关系= =对于每一个对象来说 他们的object_id都是不同的 如果相同则是同一个对象
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
6
 楼主| 发表于 2013-8-23 13:17:08 | 只看该作者
无脑之人 发表于 2013-8-23 08:21
后面的0x******是object_id 我记得好像是和内存有关系= =对于每一个对象来说 他们的object_id都是不同的 如 ...

原来跟内存有关
难怪每次都不一样...
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-13 14:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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