+ -
当前位置:首页 → 问答吧 → 如何实现类似华夏OL的物品栏存放功能?

如何实现类似华夏OL的物品栏存放功能?

时间:2011-09-13

来源:互联网

参考图:


实际上,标题所说的只是一种常见的应用实例,我真正的需求不是做那么一个物品栏,而是下面的一个需求:

  我的程序会预先创建N个1024×1024的纹理,然后每创建一个纹理就查找一个未使用的矩形区域lock进去。
如同上图中的物品栏一样,物品栏就相当于这1024×1024的纹理,每检到一个装备,就需要找出一块未使用的矩形区域放进去。
所以,需求就是如何从这1024×1024的二维数组中找出一块未占用的矩形区域?其算法如何描述?

作者: xychzh   发布时间: 2011-09-13

布尔数组。

看你的图假设装备栏是8*8的容量
有物品的为1,空着的为0

算法简单,物品分三种类型,1格,4格,6格。1格算法没说得,指向区域为0就可以放。
4格算法指向区域为空,并且其右,右下,下方向为空可放。
6格同上。
加个边界测试。

作者: HollyCpp   发布时间: 2011-09-13

自动捡物品加入的话就只搜0位,然后重复上面的1,4,6检测和边界测。

作者: HollyCpp   发布时间: 2011-09-13