怎么实现类似华夏OL的物品栏存放功能
如何实现类似华夏OL的物品栏存放功能?
参考图:
实际上,标题所说的只是一种常见的应用实例,我真正的需求不是做那么一个物品栏,而是下面的一个需求:
我的程序会预先创建N个1024×1024的纹理,然后每创建一个纹理就查找一个未使用的矩形区域lock进去。
如同上图中的物品栏一样,物品栏就相当于这1024×1024的纹理,每检到一个装备,就需要找出一块未使用的矩形区域放进去。
所以,需求就是如何从这1024×1024的二维数组中找出一块未占用的矩形区域?其算法如何描述?
------解决方案--------------------
大概是这样吧
遍历全部行
如果这个像素为空
根据这个空像素的位置来作为left,top, 目标图的长宽为size的矩形是否存在
存在 退出
这种检测有问题的。。
我们的做法是 很多资源一次性拼接到一张贴图上去
按照从左到右 从大到小的方式来拼接
这样不会省很多内存 但是可以省很多显存
参考图:
实际上,标题所说的只是一种常见的应用实例,我真正的需求不是做那么一个物品栏,而是下面的一个需求:
我的程序会预先创建N个1024×1024的纹理,然后每创建一个纹理就查找一个未使用的矩形区域lock进去。
如同上图中的物品栏一样,物品栏就相当于这1024×1024的纹理,每检到一个装备,就需要找出一块未使用的矩形区域放进去。
所以,需求就是如何从这1024×1024的二维数组中找出一块未占用的矩形区域?其算法如何描述?
------解决方案--------------------
大概是这样吧
遍历全部行
如果这个像素为空
根据这个空像素的位置来作为left,top, 目标图的长宽为size的矩形是否存在
存在 退出
这种检测有问题的。。
我们的做法是 很多资源一次性拼接到一张贴图上去
按照从左到右 从大到小的方式来拼接
这样不会省很多内存 但是可以省很多显存