道具设计一个灵活性方面的小细节:道具可以存放在任何地方

实际项目中,同事的一个道具装备之类的对象要么在背包里,要么就装备到Role身上。有一个逻辑需求是道具要在背包里消失,但这个对象还需要存在。大部分人的道具模块应该能满足这个需求。但在实际工作中遇到了,我们就写点文字。

可以简单实现一个ItemHolder(ItemMgr)之类的东西,维护ItemID->ItemObj。注意ItemID"不是"Item的策划配置资源静态ID。

背包什么弄一个Bag对象,直接维护ItemID就可以了。

上面说得那个需求,只要把ItemID从Bag里删除掉,但ItemHolder还有这个对象。如果从安全方面进一步考虑,也可以实现抽象的存放ItemID的东西,保存到DB,这样可以完整地跟踪Item对象的所处状态。


posted on 2011-08-12 10:11  daemonh  阅读(174)  评论(0编辑  收藏  举报

导航