游戏中的资源管理器
来源:互联网 发布:上海电气电站待遇知乎 编辑:程序博客网 时间:2024/04/25 23:22
我写过一个2d游戏。写2d游戏时大部分的精力花在gui的撰写和写脚本的接口上了。之前写gui的时候,new一个button的时候就load一个texture,如果频繁切换gui,texture就会频繁地load和release。
所以把纹理的加载管理与gui写在一块是很浪费效率的。最好的方法是纹理的加载与释放与gui无关。
感谢饭中淹教会了我这个思路:给纹理设置一个重要度,初始值1,当有gui使用到这个纹理的时候,每帧都增加这个纹理的重要度,当没有任何程序使用这个纹理的时候,每帧减少纹理的重要度,当重要度减少到0以下,就释放这个纹理。
这样做的好处是,经常调用的纹理在内存中的时间比较长,这样程序调用纹理时很容易命中。而且可以让多个gui调用同一个纹理。
以下是代码。我用hge的,所以调用纹理的函数是hge的函数。(*^__^*) 嘻嘻……
存储纹理用的是数组,但是用哈希表会更好。(*^__^*) 嘻嘻……
使用方法:
先调用Init()初始化
然后要用纹理的时候:
HTEXTURE = kResourceSystem::Instance().GetTexture("aaa.bmp");
释放纹理的时候:
kResourceSystem::Instance().ThrowTexture("aaa.bmp");
每帧便忘了在主循环函数里调用
kResourceSystem::Instance().Upadate();
- 游戏中的资源管理器
- 资源管理器
- 资源管理器
- 资源管理器
- 资源管理器
- 传说中的JSP木马!JSP资源管理器.
- C#中的垃圾回收及资源管理器
- 如何删除/隐藏windows资源管理器中的硬盘分区
- C#中的垃圾回收及资源管理器
- 【操作系统-Windows】隐藏资源管理器中的磁盘驱动器
- Oracle资源管理器在HIS系统中的应用
- 删除 Win10 资源管理器中的6个文件夹
- Oracle资源管理器在HIS系统中的应用
- 如何释放资源管理器中的文件到指定目录下
- 1.2 VS2008中的解决方案资源管理器中如何看见解决方案
- MSDN-如何支持的 Windows 资源管理器树中的项目重命名
- Windows点击任务栏中的文件夹直接进入资源管理器界面设置
- 项目中的一些文件夹不显示在eclipse资源管理器中
- MFC 的CList,CPtrList,CObList,CStringList 的用法之CList
- LCMapString 函数
- 韩电视台为泄露奥运开幕彩排图像向奥组委道歉
- 数据库优化
- MySql常用命令总结
- 游戏中的资源管理器
- 高可用高性能系统(八)进程管理
- 北京8成楼盘降价促销 房价已下跌10%-15%
- 哈佛图书馆的训诫
- 网帖曝90后富家女炫耀私生活引热议
- 高可用高性能系统(九)UDP的应用
- 高可用高性能系统(十)基于状态反馈的故障检测
- 2008.08.05 多云间晴
- 把方法体放在委托申明中,给线程事例化