13. 星际争霸之php设计模式--正面模式
题记
==============================================================================
本php设计模式专辑来源于博客(jymoz.com),现在已经访问不了了,这一系列文章是我找了很久才找到完整的,感谢作者jymoz的辛苦付出哦!
本文地址:http://www.cnblogs.com/davidhhuan/p/4248195.html
==============================================================================
星际里面的战斗都是在地图上进行的,只要我们可以编辑地图,就可以创造一些新的战役。可是,星际里面的地图绘制相关的代码如果开放出来,估计大多数万家都看不懂,更不要说自己编辑地图了。
待解决的问题:在不了解地图代码的结构下,我们要让玩家自己编辑地图。
思路:对于玩家而言,他熟悉的是水晶矿,高地这些形状,他和系统通过鼠标交互。我们可以设计一个地图编辑器让玩家使用,而无需让他研究绘制地图的细节代码。
(实际上暴雪公司就是这样做的,很多玩家甚至暴雪内部人员都是用星际中的地图编辑器制作地图)
正面模式(Facade)示例:
<?php//玩家的鼠标对象,记录鼠标在编辑其中的状态class mouse {//鼠标所处的X轴坐标public static $X;//鼠标当前能绘制的对象,比如水晶矿,河流等public static $object;//鼠标所处的Y轴坐标public static $Y;}//地图编辑器class mapEdit {//绘制方法public static function draw(){//根据鼠标对象的状态在地图上绘制各种东西//如果是水晶矿if(mouse::$object == "ore"){//调用水晶矿类的绘制方法,这个类定义在下面,这是真正的绘制,但玩家不必学习他的细节ore::draw(); }//如果是河流elseif(mouse::$object == "river"){//调用河流类的绘制方法,这个类定义在下面,这是真正的绘制,但玩家不必学习他的细节river::draw();}}}//水晶矿类class ore {//剩余的矿,以及其他属性,这里略过public $remain;//绘制水晶矿public static function draw(){//实际的绘制水晶矿的底层细节代码 }}//河流类class river {//绘制河流public static function draw(){//实际的绘制河流的底层细节代码 }}//玩家在地图编辑器上点击绘制对象列表上的水晶矿对象mouse::$object = "ore";//玩家移动鼠标mouse::$X = 311;mouse::$Y = 126;//在地图上点击,表示绘制当前对象,也就是一个水晶矿mapEdit::draw();?>
用途总结:正面模式让使用者集中于他所要进行的工作,而不必知道全部细节,或者说提供了一个容易使用的工具,同时屏蔽了底层细节,不必让使用者重新学习。
实现总结:需要一个类似上面地图编辑器的代码类,帮助玩家方便的进行操作。
相关文章:
1. 星际争霸之php面向对象(一)
2. 星际争霸之php面向对象(二)
3. 星际争霸之php设计模式--简单工厂模式
4. 星际争霸之php设计模式--工厂方法模式
5. 星际争霸之php设计模式--抽象工厂模式
6. 星际争霸之php设计模式--建造器模式
7. 星际争霸之php设计模式--中介者模式
8. 星际争霸之php设计模式--享元模式
9. 星际争霸之php设计模式--代理模式
10. 星际争霸之php设计模式--原型模式
11. 星际争霸之php设计模式--备忘模式
12. 星际争霸之php设计模式--模板模式
13. 星际争霸之php设计模式--正面模式
14. 星际争霸之php设计模式--状态模式
15. 星际争霸之php设计模式--策略模式
16. 星际争霸之php设计模式--组合模式
17. 星际争霸之php设计模式--职责链模式
18. 星际争霸之php设计模式--观察者模式
19. 星际争霸之php设计模式--迭代器模式
20. 星际争霸之php设计模式--适配器模式
转载于:https://www.cnblogs.com/davidhhuan/p/4248195.html
13. 星际争霸之php设计模式--正面模式相关推荐
- 12. 星际争霸之php设计模式--模板模式
题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...
- 15. 星际争霸之php设计模式--策略模式
题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...
- 4. 星际争霸之php设计模式--工厂方法模式
题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...
- 7. 星际争霸之php设计模式--中介者模式
题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...
- 星际争霸php,php设计模式之建造器模式分析【星际争霸游戏案例】
本文实例讲述了php设计模式之建造器模式.分享给大家供大家参考,具体如下: 星际里面有不少的任务关,也可以自己编辑地图,画面上有各种地形,建筑和部队. 这存在一个问题,初始化画面的流程很乱. 待解决的 ...
- 星际争霸php,php设计模式之原型模式分析【星际争霸游戏案例】
本文实例讲述了php设计模式之原型模式.分享给大家供大家参考,具体如下: 我们一般用new来新增对象,不过很多时候新增一个对象需要一些工作.而星际里面往往会新增某些类的大量的对象,比如新增很多机枪兵和 ...
- 2. 星际争霸之php面向对象(二)
题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...
- DeepMind:星际争霸2:强化学习新挑战(翻译)
DeepMind:StarCraftII:A New Challenge for Reinforcement Learning 星际争霸2:强化学习新挑战 原文下载链接:https://deepmin ...
- 设计模式 建造者模式_设计模式:建造者
设计模式 建造者模式 有时需要在应用程序中创建一个复杂的对象. 一种解决方案是Factory模式,另一种是Builder设计模式. 在某些情况下,您甚至可以结合使用这两种模式. 但是在本文中,我想研究 ...
最新文章
- Flask-RESTful的简单使用
- 东南亚“最能喝”的国家:越南取消禁止在线销售烈性酒禁令
- Java的HttpURLConnection通过POST请求中文乱码
- 服务器即将维护完成,新一轮大服务器即将开启:3月26日维护8小时
- [詹兴致矩阵论习题参考解答]习题1.10
- pytorch 生成随机数Tensor的方法 torch.rand torch.randn torch.normal torch.linespace
- 使用Flink实现索引数据到Elasticsearch
- P-Called-Party-ID头域
- 怎样在计算机桌面上安装驱动器,怎么用韩博士驱动助理安装电脑驱动
- Mybatis源码分析(一) | 如何调试Mybatis源码
- 浅谈LANG_ISO 639-1世界语言列表检索
- 《2021企业数智化转型升级创新服务企业》榜重磅发布
- 亲测有效——C#制作图片Button
- Android APT不能自动生成文件
- 抖音如何推动音乐的流行?看完这篇文章你就明白了
- 关于QA QE QC 测试职位的区别
- TextOut 字符串输出
- docker环境下orientdb的数据库导入与导出
- 【机房合作】——数风流人物,还看今朝
- 湖北黄冈计算机考试,湖北黄冈2020年注会什么时候考试?是计算机考试吗?
热门文章
- Spring @Value转义冒号(:)的默认值
- IntelliJ IDEA类注释模板设置
- Android开发笔记(二)颜色的使用
- Javascript设计模式之——代理模式
- git使用之搭建git仓库
- kubernetes apiserver认证 1
- MySQL 5.6 for Windows 解压缩版配置安装(转)
- Alipay Direct Bankpay 支付宝网银支付 (For OpenCart 2.x)
- 表格无边框,有内框,在table嵌套时,防止出现重复边线
- 我的2006年,我的博客站