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

Project1

 找回密码
 注册会员
搜索
楼主: zh99998
打印 上一主题 下一主题

问几个涉及到Ruby底层的问题……

 关闭 [复制链接]

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
609
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

51
 楼主| 发表于 2009-3-18 21:16:43 | 只看该作者
添加一个没用的啊,自己添加的又不会被系统调用
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
288
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

52
发表于 2009-3-18 21:23:25 | 只看该作者
不能手动调用?

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
609
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

53
 楼主| 发表于 2009-3-18 21:25:36 | 只看该作者
不能的哦,要获取的就是系统正在运行中的那个实例
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
288
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

54
发表于 2009-3-18 21:29:06 | 只看该作者
系统正在运行中的那个实例 ?
内存一样的话,实例就是一样的吧。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
609
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

55
 楼主| 发表于 2009-3-18 21:31:40 | 只看该作者
对呀,如果手动调用的话,要么就读到系统生成的那个实例,否则就只能新生成实例咯

问获取调用者实例的目的就是要调用那个实例哦
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
288
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

56
发表于 2009-3-18 21:32:48 | 只看该作者
以下引用zh99998于2009-3-18 13:31:40的发言:

对呀,如果手动调用的话,要么就读到系统生成的那个实例,否则就只能新生成实例咯

问获取调用者实例的目的就是要调用那个实例哦


不是吧,内存一样的话,是按地址传递参数的~
系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

57
发表于 2009-3-28 05:27:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
609
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

58
 楼主| 发表于 2009-3-28 20:55:46 | 只看该作者
以下引用沉影不器于2009-3-27 21:27:26的发言:


以下引用美兽于2009-3-17 8:14:36的发言:

第三个:
CreateWindow
GetWindowLong
SetWindowTxt


标题栏那个...可能是mouse_action..难做..
其它讨论内容...实在太长了没看下去.....


上面的讨论结果是,可以利用Ruby附加库
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
238 小时
注册时间
2006-10-2
帖子
417
59
发表于 2009-7-3 14:19:05 | 只看该作者
本帖最后由 猫哥哥 于 2009-7-3 14:38 编辑
class A
  def initialize
    B.new
  end
end
class B
  def initialize
    #在这里获取调用者,应该是$a
  end
end
$a = A.new

其中B类是自己定义的,A类和$a = A.new都是已经写好,不能更改不知内容的,只能 ...
zh99998 发表于 2009-3-17 20:46


那个……与其考虑怎么从class B获得A的实例,还不如直接从class A下手呢-_-|||

虽然不知道class A在其内部是怎么处理的,但既然class A也是一个类,它就有initialize,那么就通过alias定义
  1. class A

  2. alias:old_init initialize
  3. def initialize
  4.     $a = self
  5.     old_init
  6. end

  7. end
复制代码
$a 就是生成的那个实例了。

为了看这个能不能用我还特意试验了一下:
  1. class A
  2.   attr_accessor:vv
  3.   
  4.   def initialize
  5.     $a = self
  6.   end
  7.   
  8. end

  9. aa = A.new
  10. aa.vv = 6

  11. p $a.vv   #=>输出 6
  12. exit
复制代码
所以感觉没有必要考虑class A在initialize以后还会怎么处理或者变化,因为$a会像指针一样一直指向这个实例(不知道把$a比喻成一个指针是否恰当-_-|||)。
-------------------------------------------------------------------------------------

如果想实现的是即时存档,也没必要把所有的object都保存了呀。只要存储一些会有变动的变量和object(在制作游戏的时候就设计好)通过marshal序列化存起来,其他的object照着存储的变量再临时生成就行了。

RGSS的储存方式也是这么做的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-4 01:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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