找回密码
 点一下
查看: 1098|回复: 10

这样会泄露吗?

[复制链接]
发表于 2009-4-17 16:34:31 | 显示全部楼层 |阅读模式
请教一下,这样的T会卡吗?

事件:玩家释放一个技能,
条件:技能是切换包裹
动作:就是把玩家身上的装备全部移动到一个农民A身上,然后把另一个农民B身上的装备全部移动到英雄身上,然后把农民A身上的装备移动到农民B身上,实现切换包裹  其中,选择农民我没有用变量,只是用的PICK RANDOM UNIT~~因为农民A和农民B玩家都只有1个~~~(他们之间类型也不一样,不是一个单位)。。。实现起来很好,但是这样会泄露吗?能否告诉一下?

我一直以为是点和特效 泄露~~~
发表于 2009-4-17 16:41:36 | 显示全部楼层
创建了单位组有可能会泄露
回复

使用道具 举报

发表于 2009-4-17 16:43:04 | 显示全部楼层
单位组也是会泄露的
回复

使用道具 举报

发表于 2009-4-17 16:43:12 | 显示全部楼层
不会
回复

使用道具 举报

发表于 2009-4-17 19:29:22 | 显示全部楼层
楼主就那么讨厌变量么..
用变量的话 一种单位就可以实现n组背包了啊
虽然变量也要变成组
回复

使用道具 举报

发表于 2009-4-17 21:05:16 | 显示全部楼层
1.看不到具体触发很难讲是否泄漏 。
2.所谓泄漏说简单点,就是创建了对象(单位、点、区域等等),当该对象不再被调用时(就是没用了)没有被删掉,致使白白占用内存资源。
而删除这些对象施放被占用的内存的过程就叫排泄。所以触发中做了排泄就谈不到泄漏了。
3.不是所有泄漏都那么可怕,特别是有些单次调用的触发,没必要排泄。
举例1:
[trigger]
Example
    事件
        地图初始化
    条件
    动作
        单位 - 创建 1 个 步兵 给 玩家1(红色) 在 ((可用地图区域) 的中心点) ,面向角度为 默认建筑朝向 度
[/trigger]
上面触发中((可用地图区域) 的中心点) 就是一个泄漏,这个点会长期占用着内存,但是因为它不会反复的被创建,排泄与否意义不大。
举例2:
[trigger]
Example
    事件
        单位 - 任意单位 死亡
    条件
    动作
        单位 - 创建 1 个 步兵 给 玩家1(红色) 在 ((触发单位) 的位置) ,面向角度为 默认建筑朝向 度
[/trigger]
上面触发就不同了,如果不做排泄,随着游戏的进行将有很多很多点被创建,并白白占用着内存。(其实如果你的地图这样的触发不多的话,还是没关系的)
4.虽然说有些泄漏并不怎么影响游戏,但是还是建议一视同仁——排泄之!
回复

使用道具 举报

 楼主| 发表于 2009-4-18 12:37:32 | 显示全部楼层
恩 谢谢大家了。。。

另外,我设置一个变量P
在所有需要用到点的时候,就设置P=你需要的位置,然后紧接着创建到P处,这样可以吗?就是说一直只有1个点P是占用内存的

我的意思是 所有T里都只用这个P变量可以吗?
回复

使用道具 举报

一抹煞白 该用户已被删除
发表于 2009-4-18 12:47:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2009-4-18 12:53:21 | 显示全部楼层
其实相同的原理不同写法的效率也不同的,泄露也不同,除非给一段触发或者J,否则没法说是否泄漏
回复

使用道具 举报

 楼主| 发表于 2009-4-19 12:41:06 | 显示全部楼层
我是说,既然我用一个变量做中介点,不断的赋予新的值,那么原来那个点还是要删除的啊?我以为就被覆盖了,以为就不用了~~~
回复

使用道具 举报

发表于 2009-4-19 13:40:47 | 显示全部楼层
被覆盖了,但那个handle并没有被清除,只是把引用去掉了

http://www.islga.org/bbs/read.php?tid=2551411楼有一个简单的示意图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-7-21 20:24 , Processed in 0.037272 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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