zoukankan      html  css  js  c++  java
  • 正面模式(门面模式)-鼠标画地图实例

    
    
    思路:
    对于操作者:编辑地图时,界面上给鼠标 2个选项,是画“河流”还是“水晶”
    然后记录鼠标的坐标XY
    对于编辑器:只要知道操作者是要画什么,在什么坐标点画,然后调用画具体物件的类就可以了
    具体画物件的类:只要知道坐标等相关属性就可以画了

    <?php //玩家的鼠标对象,记录鼠标在编辑其中的状态 class mouse { public static $X; //鼠标所处的X轴坐标 public static $Y; //鼠标所处的Y轴坐标 public static $object; //鼠标当前能绘制的对象,比如水晶矿,河流等 } //地图编辑器 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() { //实际的绘制水晶矿的底层细节代码 echo '画水晶'; echo mouse::$X; } } //河流类 class rive { //绘制河流 public static function draw() { //实际的绘制河流的底层细节代码 echo '画河流'; echo mouse::$X; } } //玩家在地图编辑器上点击绘制对象列表上的水晶矿对象 mouse::$object = "ore"; //玩家移动鼠标 mouse::$X = 311; mouse::$Y = 126; //在地图上点击,表示绘制当前对象,也就是一个水晶矿 mapEdit::draw(); ?>
    用途总结:正面模式让使用者集中于他所要进行的工作,而不必知道全部细节,或者说提供了一个容易使用的工具,同时屏蔽了底层细节,不必让使用者重新学习。
    
    实现总结:需要一个类似上面地图编辑器的代码类,帮助玩家方便的进行操作。
  • 相关阅读:
    Infopath Notify 弹出提示信息
    window.showModalDialog 返回值
    【转】获得正文内容中的所有img标签的图片路径
    Json Datable Convert
    Sharepoint 列表 附件 小功能
    Surgey 权限更改
    SQL 触发器用于IP记录转换
    Caml语句 查询分配给当前用户及当前组
    jquery 1.3.2 auto referenced when new web application in VSTS2010(DEV10)
    TFS diff/merge configuration
  • 原文地址:https://www.cnblogs.com/jiufen/p/5056600.html
Copyright © 2011-2022 走看看