Project1

标题: 关于实例的释放问题. [打印本页]

作者: jhhuang    时间: 2013-3-16 03:52
标题: 关于实例的释放问题.
本帖最后由 jhhuang 于 2013-3-18 11:32 编辑
  1.   # 重新设置敌人队伍
  2.   def new_troop
  3.     @ e = [nil]
  4.     for i in 1..$data_enemies.size
  5.       @e.push []
  6.       for n in 0..24
  7.         @e[i][n] = RPG::Troop::Member.new(i)
  8.       end
  9.     end
  10.     $data_troops[1].members =
  11.     [nil        ,@e[100][0] ,nil        ,nil        ,nil        ,
  12.      nil        ,@e[100][1] ,@e[100][2] ,nil        ,nil        ,
  13.      nil        ,@e[100][3] ,nil        ,nil        ,nil        ,
  14.      nil        ,nil        ,nil        ,@e[100][4] ,nil        ,
  15.      nil        ,nil        ,nil        ,nil        ,nil        ]
  16. ...
  17. ...
复制代码

为了突破默认工程只能使用几只怪物的限制,在脚本里设置了敌人队伍数据.
生成出来的RPG::Troop::Member.new队伍成员数据的实例如何释放?需要释放吗?     

作者: jhhuang    时间: 2013-3-16 16:00
RPG::Troop::Member类本身不存在释放方法,所以
        @e[n] = RPG::Troop::Member.new(i)
        @e[n].dispose
会出错.
  1. module RPG
  2.   class Troop
  3.     class Member
  4.       def initialize
  5.         @enemy_id = 1
  6.         @x = 0
  7.         @y = 0
  8.         [url=home.php?mod=space&uid=292300]@Hidden[/url] = false
  9.         @immortal = false
  10.       end
  11.       attr_accessor :enemy_id
  12.       attr_accessor :x
  13.       attr_accessor :y
  14.       attr_accessor :hidden
  15.       attr_accessor :immortal
  16.     end
  17.   end
  18. end
复制代码
那么自己在这个类里写释放方法:
def dispose
end
需要释放些什么东西呢...里面有的只有5个变量...
在@e[n] = RPG::Troop::Member.new(i)取得这些变量后.
是否@e[n] = nil 就相当于把实例释放干净了?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1