文章目录
摘要
- 背包系统作为游戏中常见的一个系统,它的实现基本有迹可循。相比于其他内容它的实现思路具有较大的普适性。
- 在平时的开发练习中,曾用过许多种设计思路去实现背包系统。根据这些练习的经验总结,可以知道各种背包系统设计的基本思路都是大相径庭的。
- 因此打算就一般思路进行一次总结
从数据库概念基础出发
- 其实很多程序,不止游戏,也包括网站等。它们都会使用数据库功能。
- 一般来说,程序中大量的数据都会存储在数据库的一张张表中。而对于数据库操作,大体上可以分为查询和更新两部分。而在更新中,又有增、删、查、改四种基本操作。
- 一般来说,如果要将网站上的某个数据存储到用户个人账户上,例如收藏文章。那么就会使用“增加”功能,将该文章的id加入到用户自己的专门存储收藏栏的表中。
- 这就是数据库的基本操作。
从数据库到游戏
- 虽然不同设计模式或者程序框架下,对于“数据表”有着不同的设计和对接要求。但说到底,每一个可以存储”物品“的对象都存在一张”数据表“用于存放物品的id或者对象引用。
- 就游戏而言,一般会将所有的物品数据存储在内置数据库或者实例化对象的字典或列表中。这些表通常存储着物品的共同信息和特定信息。共同信息包括id,名称,描述,价值,是否可堆叠等。而特定信息一般用于存储装备、道具等的特殊信息。
- 而背包系统则是存储持有道具的id或对象引用以及数量等。
- 而游戏中的任何物品的存储和转移行为,如掉落物,采集物,购买,出售。在后端都可以按照增删逻辑来实现,只不过一般来说商店的存储方