首页 > 作文

php设计模式之享元模式分析【星际争霸游戏案例】

更新时间:2023-04-08 15:09:32 阅读: 评论:0

本文实例讲述了php设计模式之享元模式。分享给大家供大家参考,具体如下:

星际的战斗达到后面,地图里面的部队很多,如果我们把每个兵的图像动画和属性值作为一个对象的话,系统的内存里会消耗极大。

我们在玩的时候会发现,因为星际里面的种族只有三个,其实兵种只有几十个。
虽然每个独立的士兵剩余的血不同,但是同一兵种的图像动画是一样的,即使不同的玩家,只是不同的颜色。比如每个人族的机枪兵。

而且大多数玩家只用到常用的一些兵种,很多时候不会制造所有的兵种。

待解决的问题:把把兵种的图像动画共享。

思路:我们把每个兵种的图像动画建模作为对象,放入内存牛骨汤的功效与作用共享。一旦有某个画面用到这个兵种,只要把共享的图像动画拿出来,更改颜色就可以了。

享元(flyweight)模式示例:

<?php //机枪兵享元 class marineflyweight {  //绘制机枪兵的图像动画,参数为状态,比如属于哪一个玩家  public function drawmarine($state)  {   //绘制机枪兵  } } //享元工厂 class flyweightfactory {  //享元数组,用于存放多个享元  援助的意思private $flyweights;  //获取享元的方法  public function getflyweight($name)  {   if (!ist($flyweights[$name]))   {    $flyweights[$name] = new $name."flyweight";   }   return $flyweights[$name];  } } //初始化享元工厂 $flyweightfactory = new flyweightfactor绿色阅读y(); //当我们需要绘制一个机枪兵的时候,同时传递一个状态数组,里面包含剩余的血等等 $marine = $flyweightfactory->getflyweight("marine"); $marine->drawmarine($status);?>

用途总结:菜生活享元模式可以将需要共享的资源集中起来,统一管理,防止重复消耗。

实现总结:需要一个享元工厂管理共享的资源,比如上面的flyweig日本化妆品品牌大全htfactory。把所有共享的资源的生产全部交给个享元工厂。

本文发布于:2023-04-08 15:09:31,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/3c6fdcfbba09f1ad7ebf9302c5ee5684.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php设计模式之享元模式分析【星际争霸游戏案例】.doc

本文 PDF 下载地址:php设计模式之享元模式分析【星际争霸游戏案例】.pdf

上一篇:产后喝水好处
下一篇:返回列表
标签:兵种   图像   动画   机枪兵
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图