实现背包显示10万物品

最后更新于 2022-09-21 330 次阅读


数据来源

单机游戏 -> json/XML/二进制文件/ 本地数据

网络游戏 ->服务器/DataBase

List存储

可视范围

履带上的可视范围的起始位置Y

以及可视范围的结束位置为Y + H

获取那些道具应该被显示

假设一个格子大小为80 * 80,90 / 80 = 1,1 * 3 = 3,即显示区域第一个格子序列号为3.

使用可视范围的起始位置Y / 一个格子的高 -> 起始显示的是哪一行 * 一行有多少个格子

= 起始位置显示的索引值

使用可视范围的结束位置Y / 一个格子的高 -> 起始显示的是哪一行 + (一行格子数量 - 1)

= 结束位置显示的索引值

记录当前显示的内容

需要一个容器来记录当前显示着的对象信息,目的是每次改变时能够进行判断。

移除视野的就是不在第三步算出来的索引范围内的格子对象

移除它,如果这个容器中没有第三步算出来的索引值的格子,创建它

Dictionary<int,格子对象>

类设计

BagMgr 获取道具信息

BagItem 背包格子类

BagPanel 背包逻辑