查看: 3095|回复: 4

[已经解决] (Sprite in Array)'s Bitmap Dispose Trauble?

[复制链接]
梦石
0
星屑
752
在线时间
800 小时
注册时间
2011-10-20
回帖
2257

开拓者

发表于 2012-5-26 23:09:16 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 end55rpg 于 2012-5-26 23:17 编辑

刚刚那帖子太混乱了,重发,顺便答对者2贴同时采纳!
标题即:在数组中的精灵类(sprite)的位图(bitmap)清除(dispose)后,数组(array)全部元素(values)的位图(bitmap)都被清除(dispose)了.
(带英汉互易)= =,不信你们自己看,我工程都做好了: NEWSIDES.rar (240.04 KB, 下载次数: 13)
看在偶铺底图和代码准备完毕情况下旧测试一下把,,,,分不够再ADDDDDDDDDDDD


‘‘──end55rpg于2012-5-26 23:17补充以下内容:

@Wind2010
’’
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险?ARPG?赢回你的疆域?新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
回帖
550
发表于 2012-5-27 00:45:58 | 显示全部楼层
未命名.PNG

点评

??看不见图  发表于 2012-5-27 12:25
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2012-5-27 06:52:01 | 显示全部楼层
本帖最后由 IamI 于 2012-5-27 06:53 编辑

指针概念认为,对于任何一个大型的对象,其真实的位置不在运算中传递,在各次赋值当中,互相交换的只是这个对象的内存地址,而对象本身没有被拷贝。
说这么一堆废话的意思是,您是否将整个数组的 Bitmap 为方便而设置成了同一个?或者用 Cache 加载了同一张?
如果有,请使用十次 Bitmap.new 方法,不要打 Object#clone 的主意……那玩意对 Bitmap 无效,而且很容易出错。

点评

应该是CACHE了同一张?代码:self.bitmap = RPG::Cache.picture("screenshot")  发表于 2012-5-27 09:44
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

梦石
0
星屑
752
在线时间
800 小时
注册时间
2011-10-20
回帖
2257

开拓者

 楼主| 发表于 2012-5-27 09:51:02 | 显示全部楼层
IamI 发表于 2012-5-27 06:52
指针概念认为,对于任何一个大型的对象,其真实的位置不在运算中传递,在各次赋值当中,互相交换的只是这个 ...

代码如下
1.建立数组
  1. class Spriteset_Map
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对像
  4.   #--------------------------------------------------------------------------
  5.   alias in2 initialize
  6.   def initialize
  7.     # 生成显示端口
  8.     in2
  9.     @viewport1 = Viewport.new(0, 0, 640, 480)
  10.     $array = Array.new(10){Sprite_XXX.new(@viewport1)}  
  11.   end
  12. end
复制代码
2.精灵类:
  1. class Sprite_XXX < RPG::Sprite
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对像
  4.   #--------------------------------------------------------------------------
  5.   def initialize(v)
  6.     super(v)
  7.     self.bitmap = RPG::Cache.picture("screenshot")
  8.     self.x = rand 300
  9.     self.zoom_x = 0.1
  10.     self.zoom_x = 0.3
  11.     self.y = rand(200)
  12.     self.z = 9999
  13.     self.tone = Tone.new(rand(256),rand(255),rand(255))
  14.     self.opacity = 155
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 释放
  18.   #--------------------------------------------------------------------------
  19.   def dispose
  20.     if self.bitmap != nil
  21.       self.bitmap.dispose
  22.     end
  23.     super
  24.   end
  25. end
复制代码
然后$array[0].dispose全部都会消失,怎么改?
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险?ARPG?赢回你的疆域?新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
回复

使用道具 举报

Fuzzy Ginkgo

梦石
0
星屑
61105
在线时间
1933 小时
注册时间
2010-6-26
回帖
1535

烫烫烫开拓者

发表于 2012-5-27 09:58:51 | 显示全部楼层
self.bitmap = Bitmap.new("Graphics/Pictures/screenshot")

点评

= =可以了  发表于 2012-5-27 12:27
我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部