<label id="wcwza"><track id="wcwza"></track></label>

    <rp id="wcwza"><object id="wcwza"><input id="wcwza"></input></object></rp>
  1. <dd id="wcwza"></dd>
    <button id="wcwza"><object id="wcwza"><menuitem id="wcwza"></menuitem></object></button>
    <dd id="wcwza"></dd>

      首頁>> 開發技術知識>> 平面廣告設計知識>>從一個游戲存檔例子學習設計模式


      從一個游戲存檔例子學習設計模式

      給和我一樣在菜鳥前進的路上掙扎的兄弟們...老鳥就不用看了,大菜鳥請先找兩本象樣的進階as3書大補再來看。

      正題

      游戲存檔說白了其實就是一個備忘錄,用到的設計模式也被稱為“備忘錄模式”。就象把當前的狀態都寫在一張紙上,當發現狀態無效的的時候去讀取備忘錄并把它的狀態重新賦給對象,以復原對象。說了這么多,玩過游戲的人應該都明白。。
      ok,明白了概念,下面就是如何實現這個設計模式了。最典型的就是游戲存檔了。更多FLASH游戲:http://www.flashas.net/html/flashas/asyouxi/

      照上邊說的,存檔這么簡單,就用一個HeroState去存唄,要讀取的時候再去讀唄。簡單是簡單了,但是擴展性就沒了,耦合性也很高。照大話設計模式的 話說,就是“如果一個類承擔的職責過多,等于把這些職責耦合在一起,一個職責的變化可能會抑制或削弱這個類完成其他職責的能力。這種設計會導致脆弱的設 計,當變化發生時,會導致意想不到的破壞。”。換句話說,就是盡量把各個類的職責分工明確,相互之盡量不透露自身的信息(封裝)。

      拿這個游戲存檔例子來說,可以劃分為游戲主類,游戲角色類,存檔管理者,狀態盒子。游戲主類去操作游戲角色和儲存,讀取進度,需要儲存和讀取進度就去通知 存檔管理者,由它去處理狀態盒子具體的存檔和取檔操作。我的理解是類的分工職責要明確,各個類之間互相知道的越少越好。邏輯很簡單吧?設計模式的真諦就是 簡單就是美(個人理解)。

      這個存檔例子用接口實現了用兩種方法去儲存角色狀態:用saveBox去儲存(一般方法)和SOSaveBox(用SharedObject本地儲存).不懂SO的請進FLASH按F1。什么?你不知道F1是什么東西?出門左拐不用謝。。
      只說一點理論上的東西,具體的概念和方法請自行翻書找,比這里詳細多了。

      廢話了這么多,看代碼,游戲主類Main.as:

      package  
      {
              import flash.display.Sprite;
              
              /**
               * 主類,繼承Sprite
               * @author ZMYSPC
               */
              public class Main extends Sprite
              {
                      
                      var zmyspc:Hero;
                      var gameSaver:SaveManager;
                      public function Main() 
                      {
                              SaveManager.useSO = true;//是否用SO儲存
                              zmyspc= new Hero(1000, 200, 100);//我是英雄!
                              gameSaver= new SaveManager();//存檔管理者
                              zmyspc.show();//顯示角色當前狀態
                              gameSaver.save = zmyspc.getState();//存檔了
                              zmyspc.dead();//我掛了。。
                              zmyspc.show();
                              zmyspc.recoveryState(gameSaver.save);//讀取存檔,又是一條好漢!
                              zmyspc.show();
                      }
                      
              }
              
      }



      分享聯系我們

      掃二維碼與項目經理溝通 我們在微信上24小時期待你的聲音

      感謝您的關注分享“從一個游戲存檔例子學習設計模式”
      煙寒網絡真誠為您服務 ,點擊客服直接咨詢下單.

      我們服務

      南寧網絡公司南寧網站建設

      網站建設

      高端網站建設服務商、相信品牌力量、相信知名企業;制作后收費13014982176!

      南寧微信小程序/微信公眾號

      微信小程序/微信公眾號

      微信小程序 背靠10億流量,不論用戶需求是什么,都能被開發使用 一點創意,就能在“社交圈”中脫穎而出。

      南寧網站優化/SEO

      網站優化/SEO

      讓您的網站更靠近排名位置,讓客戶更容易找到您,seo優化是一個漫長過程,整個網站營銷花最少的錢起最大的作用。

      我們服務客戶


      企業形象網站、個人博客、政府門戶網站、新聞傳媒網站最省錢、省時、省備案 建站快、效率高更多服務
      廣西華崧集團網站品牌設計

      廣西華崧集團網站品牌設計

      廣西華崧林業發展集團(以下簡稱華崧集團)組建于2017年8月,集團總部位于廣西壯...

      廣西大和平房地產有限公司

      廣西大和平房地產有限公司

      廣西鴻生源環?萍加邢薰

      廣西鴻生源環?萍加邢薰