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

Project1

 找回密码
 注册会员
搜索

关于dispose, clear, empty

查看数: 1541 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-8-24 11:29

正文摘要:

我想分清 dispose clear empty 之间的区别 举例 : Scene_Title RUBY 代码复制# 释放命令窗口    @command_window.dispose    # 释放标题图形    @sprite.bi ...

回复

九靈 发表于 2013-8-24 14:37:59
本帖最后由 九靈 于 2013-8-24 14:39 编辑
kuerlulu 发表于 2013-8-24 14:06
我在所有脚本开头写了个
p @sprite ,结果是nil,这时候还没有赋值
Title中是先将@sprite赋值为“显示图片 ...


综合以上,即
@sprite.dispose 时在内存中被去掉(释放内存),但是
@sprite 本身有个值是还存在于内存中的地址(那个16进制的:0x***)
所以如果
@sprite.dispose后print @sprite 输出的是那个内存地址(好像是放图的地址)但是实际上已经被释放掉了 而
@sprite=nil 就是把那个内存地址清除

至此理解对吧...

点评

这个理解是对的,另外我说LS你在哪里学的= =GC是把没有句柄的对象回收掉= =和nil什么dispose什么的都没关系好吗= =  发表于 2013-8-24 14:54
顺便附GC方法(很简单):GC.enable (允许垃圾回收)[隔一行]GC.start (开始回收垃圾),这样能把所有dispose掉的东西变成nil  发表于 2013-8-24 14:43
无脑之人 发表于 2013-8-24 14:16:48
我表示谁说@sprite=nil 和@sprite.dispose功能一样了……= =
@sprite在dispose以后 是他的C++部分在内存中去掉了 他在Ruby的这部分还需要你清除 也就是@sprite=nil
但是直接@sprite=nil Ruby部分清除了 但是C++部分没有清除 还需要GC什么的清理一遍

评分

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

查看全部评分

kuerlulu 发表于 2013-8-24 14:06:51
我在所有脚本开头写了个
p @sprite ,结果是nil,这时候还没有赋值
Title中是先将@sprite赋值为“显示图片”然后用bitmap方法显示图片的,这时候已经附了一个随机值。
所以当@sprite.dispose掉之后再p @sprite就会放出那个随机值(好像是16进制的)。
而脚本中使用@sprite = nil功能和.dispose是一样的,不同的是前者直接将@sprite清空,后者只是关掉它。

评分

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

查看全部评分

myownroc 发表于 2013-8-24 12:34:43
x.dispose 相当于 x=nil
clear 就是清除位图信息,但不会使实例为空.这个方法多用于Windwo和Bitmap中
empty好象只适用于Rect中,使其x,y,width,height为0

点评

empty只用于Rect啊...  发表于 2013-8-24 13:48
satgo1546 发表于 2013-8-24 11:39:51
clear/dispose可以看http://rpg.blue/thread-327967-1-1.html,VA与XP一样
empty只是将Rect设为“空”,应该是设为(0,0,0,0)之类的
无脑之人 发表于 2013-8-24 11:39:21
clear是Bitmap的方法,清空位图信息,效果大概就是把Bitmap每一个像素点换成透明的
dispose是在内存中释放掉,Sprite,Bitmap,Viewport等都有这个方法,dispose以后将会禁止所有对他的操作
empty翻了半天F1怎么都找不着 Rect有定义这个方法吗?不过兰触测试了一下 是把Rect的四个属性清零

点评

"dispose是在内存中释放掉"吗? 不过我测试的结果有值啊= =。请看5楼  发表于 2013-8-24 13:54
我也是到处找不到empty的说明= =  发表于 2013-8-24 13:47
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-9-29 20:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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