13. 星際爭霸之php設計模式--正面模式

來源:互聯網
上載者:User

標籤:

題記
==============================================================================
本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設計模式--Factory 方法模式

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設計模式--適配器模式

13. 星際爭霸之php設計模式--正面模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.