关于2D地图加载的问题。
来源:互联网 发布:数据库的管理实验报告 编辑:程序博客网 时间:2024/06/05 15:05
最近在做关于XNA的一个项目,仅仅起步而已就遇到了不少困难.当然目前停留在了
对于2D地图的加载并且更新问题.我使用的是一个6400*5000以上的分辨率的图片.这个
图片就是一张完整的地图.本来准备用地图编辑器的方法来制作地图,因为也许那样更加轻松.
不过因为看了网易 云风的技术文章,发现他的方法更加方便或者说更加节约内存.最主要的是
以后可以让美工专注于地图绘制,最后只需要给我完整的地图我就可以使用了.
目前使用的方法不过是先用 Bitmap对象加载进需要的地图,但此时程序会达到150M左右.
并且使用Bitmap对象切割方法从内存里选出需要的图片大小例如320*240 接着把320*240
的图片拼接成整个窗口大小例如800*600 这样一来一次只需要不到5块(320*240为一块)
的图片,其中3*3块为显示当前地图,其余2*2块分别为左右上下预备地图,当人物移于地图
的时候正方向至需要预先加载2-4块,斜方向则加载7块,如此一来极大地节省了内存的消耗.
然后使用MemoryStream流对象保存在流当中并且赋值给Texture2D对象里,这样做是为
了可以在内存里操作而不需要真的把图片切割成无数个JPG图片.最后用循环绘制出来的地图程序
有3M左右大小.这只是静态时候,当更新图片是会增加到二,三十兆左右,如果再加上绘制人物、渲染
、遮盖这些恐怕要超过我估计的内存才可能顺利运行起程序.
总的说来理论就是 开始加载窗口大小的图片,然后根据玩家移动方法预先加载相应的图片.
虽然远比整个6400分辨率的地图加载来的效率和快速,但因为大话西游使用了不到30M的内存.
我认为应该还有更好的方法.虽然目前用户的PC机大多已经是1、2G的内存,但我个人觉得以
更低低的资源运行程序才是体现程序员的价值所在.
- 关于2D地图加载的问题。
- 关于echarts加载地图时好时坏的问题
- 【libgdx】2D地图块(tileset)地图出现缝隙(gap / bleeding)的问题
- 关于地图的更新问题
- 关于百度地图的问题
- 关于将geoserver gwc切片加载到地图上出现偏移的问题
- 关于cocosdx加载tmx地图和一些碰撞检测的问题
- 关于反射加载DLL的问题2
- 地图加载问题
- 关于android高德地图地图无法显示的问题
- 关于基础百度地图和地图导航的bug问题
- 关于百度地图的矫正问题
- 关于地图marker的聚合问题
- 关于百度地图偏移的问题
- 关于百度地图 key值的问题
- 关于百度地图偏移的问题
- 关于百度地图api的key问题
- 关于地图坐标标准的问题
- ashx处理页面
- Resource is out of sync with the file system
- 由Equals()引发的对对象的引用与对象(即实例)的关系的思考
- 网上购物网站建设方案
- Struts2中使用Velocity模板需要加入的4个类库文件
- 关于2D地图加载的问题。
- 看完后想10秒钟,你会改变自己!
- Google Vs Yahoo/ Google Vs Google.cn
- 急急急!!!!请教各位!!1
- 请珍惜你身边发脾气的女人!!
- Java中调用存储过程
- ASP.NET编程规范之命名规范浅析
- 开启Sharepoint页面报错和Callstack信息
- USE_NL