游戏中的资源管理
来源:互联网 发布:淘宝优惠券短连接 编辑:程序博客网 时间:2024/05/16 19:08
游戏中用到的资源,何时加载,何时释放,有很多种方式可以对其进行管理,以下讨论一种比较常见的方式,使用引用计数进行管理。
比如说需要对图片资源进行管理,定义图片类为CPicure,图片管理类为CPictureMgr,此类的接口CreatePictureFromFile负责图片的加载,为了防止Client忘记调用销毁图片资源的接口,我们就不提供图片销毁接口,而是返回一个CPicture的引用计数智能指针,这样,资源管理的责任就交给了Client,当Client保存的CPicture对象的生命周期到了的时候,资源就会自动释放(当然,前提是Client也是使用的引用计数智能指针)。这样,每次调用CreatePictureFromFile就会返回一个不同的对象,即使两次传入的是同一个文件。但多数时候,我们可能不会对加载的图片进行修改,所以我们期望,如果Picture已经加载了,就不再重新加载,而是直接返回之前的Picture指针,这就需要我们在CPictureMgr中保存一个已经加载的图片的指针列表,如果我们保存一个引用计数指针列表,那么当外部引用Picture的对象生命周期结束时,Picture并不会被释放,应为列表中还有一次对Picture的引用。这样,不再使用的资源就不能及时释放。解决方法是可以使用弱引用,这样如果发现列表中的某个弱引用访问到的指针为NULL了,就把它从列表中删除。
- 游戏中的资源管理
- 游戏中的资源管理----资源高速缓存
- 游戏中的资源管理--资源高速缓存
- 游戏中的资源管理――资源高速缓存(转)
- 游戏引擎的资源管理
- 游戏引擎的资源管理
- 游戏中资源管理方案探讨
- 游戏编程之十二 资源管理
- Eclipse中的图片资源管理
- Flex中的资源管理
- 敏捷项目中的资源管理
- Java中的自动化资源管理
- C++中的资源管理
- 浅谈C++中的资源管理
- C++中的资源管理
- 浅谈C++中的资源管理
- Yarn资源管理中的哲学
- C++中的资源管理<转载>
- 简述在FLASH读取XML的数据(转)
- 数据库范式
- Debug内存泄露的简单代码
- 解决firefox浏览器下,window.close()不能关闭容器的兼容性问题
- String Streams (sstream)
- 游戏中的资源管理
- 人该怎么活
- 内核定时器使用
- java中的回调函数——利用接口(转)
- 单机搭建WinCE开发环境
- Oralce 清空表的所有信息
- ireport根据分组分页时,最后一页没有数据
- 做U盘系统
- 单机搭建WinCE开发环境(续)