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

Project1

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

[已经解决] Sprite dispose后--的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
690
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

跳转到指定楼层
1
发表于 2012-5-26 19:05:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 end55rpg 于 2012-5-26 20:21 编辑

class Sprite_XXX < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize()
    super()
    bitmap = Bitmap.new(10,10)
    update
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
    end
    super
  end
end
比如建立如上的继承SPRITE的类
然后
array = Array.new(10){Sprite_XXX.new}
array.each{|a|a.dispose if rand(100) <= 50;array.delete(a)}#随即DEL一些.
array[0].disposed? # =>true
我会发现,如果建立的有BITMAP显示出来,那么全部SPRITE图象都会消失....
就这个问题,求继续重新看帖子




我果然记错了....问题在上面= =上

比如下面:
array = Array.new
10.times{|t|s=Sprite.new
                   s.x,s.y = t
                   array.push s}
#=> [Sprite##@$%@#bb0f........sprite%#$fffgew]
存10个进数猪里.........
然后我只要DISPOSE其中任意一个:
array[0].dispose
print array[2].x # =>错误
数组其他的SPRITE操作就会发生sprite ... have disposed!
就会跳错,这是什么原因,怎么改....?

点评

5L已更新  发表于 2012-5-26 23:02
array = Array.new(10){Sprite_XXX.new}改成array = Array.new(10){Sprite_XXX.new.clone}  发表于 2012-5-26 21:47
估计其他地方造作失误吧(o.o 可以直接Array带块呢 array = Array.new(10){Sprite.new}  发表于 2012-5-26 19:51

Lv6.析梦学徒

Fuzzy Ginkgo
Taciturn Knight

梦石
0
星屑
60819
在线时间
1934 小时
注册时间
2010-6-26
帖子
1605

烫烫烫开拓者

2
发表于 2012-5-26 19:28:51 | 只看该作者
奇怪……
你这样试试
array = (1..10).map { Sprite.new }

点评

就给你吧分.....因为1L+回答....  发表于 2012-5-27 12:29
come again ,cat!  发表于 2012-5-26 20:37
怎么搞的,二种都没问题了,,,不过为什么以前我这样会错呢....  发表于 2012-5-26 19:48
我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
3
发表于 2012-5-26 19:46:59 | 只看该作者
  1. array = Array.new
  2. 10.times{|t|s=Sprite.new
  3. s.x,s.y = t,t #
  4. array.push s}
  5. array[0].dispose
  6. print array[2].x
复制代码
测试无报错

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
690
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

4
 楼主| 发表于 2012-5-26 20:19:23 | 只看该作者
@Wind2010@orzfly
@灼眼的夏娜求大大们重新看下问题,我之前问题改了
欢迎点此进入我的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]
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
5
发表于 2012-5-26 20:51:47 | 只看该作者
本帖最后由 Wind2010 于 2012-5-26 23:02 编辑

Sprite_XXX.new.clone这样试试

  1. class Sprite_XXX < RPG::Sprite
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对像
  4.   #--------------------------------------------------------------------------
  5.   def initialize(type=0)
  6.     super()
  7.     @type = type
  8.     bitmap = Bitmap.new(10,10)
  9.     update
  10.   end
  11.   #--------------------------------------------------------------------------
  12.   # ● 释放
  13.   #--------------------------------------------------------------------------
  14.   def dispose
  15.     if self.bitmap != nil
  16.       self.bitmap.dispose
  17.     end
  18.     super
  19.   end
  20. end
  21. array = Array.new(10){|i|Sprite_XXX.new(i)}
  22. array.each{|a|a.dispose if rand(100) <= 50;array.delete(a)}#随即DEL一些.
  23. p array[0].disposed? # =>true
复制代码

点评

不行,虽然不会跳CAN NOT...了,但是又弹出没有找到DISPOSE方法勒....  发表于 2012-5-26 23:24
在XP体温区  发表于 2012-5-26 23:13
...我又重新提了下问贴,里面有附件你试下,我刚刚弄好的....你这个就加个@TEPY?  发表于 2012-5-26 23:13
print out :sprite can not clone!  发表于 2012-5-26 22:58
啥,克隆?这是干什么?插在脚本哪个地方?  发表于 2012-5-26 21:16

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-2 08:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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