虽然每个独立的士兵剩余的血不同,但是同一兵种的图像动画是一样的,即使不同的玩家,只是不同的颜色,比如每个人族的机枪兵.而且大多数玩家只用到常用的一些兵种,很多时候不会制造所有的兵种.
待解决的问题:把把兵种的图像动画共享.
思路:我们把每个兵种的图像动画建模作为对象,放入内存共享,一旦有某个画面用到这个兵种,只要把共享的图像动画拿出来,更改颜色就可以了.
享元(flyweight)模式示例,代码如下:
getflyweight(marine);$marine->drawmarine($status);?>
用途总结:享元模式可以将需要共享的资源集中起来,统一管理,防止重复消耗.
实现总结:需要一个享元工厂管理共享的资源,比如上面的flyweightfactory,把所有共享的资源的生产全部交给个享元工厂.
文章地址:
转载随意^^请带上本文地址!