国产精品一品二品_49vv亚洲_亚洲美女激情视频_国产成人亚洲无吗淙合青草_欧美在线天堂_人妻av无码av中文av日韩av_av在线播放免费_91亚洲精品在线观看_韩国 欧美 日产 国产精品_久久人人爽

在線客服:  

「南寧煙寒網(wǎng)絡(luò)」提供南寧網(wǎng)站建設(shè)、網(wǎng)站策劃、南寧網(wǎng)頁制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、南寧SEO優(yōu)化、網(wǎng)站維護(hù)、南寧網(wǎng)站優(yōu)化、南寧網(wǎng)站推廣、廣告設(shè)計(jì)等服務(wù)..

咨詢熱線

在線客服

24小時(shí)免費(fèi)咨詢電話:18978941786

客服時(shí)間:上午9:30~下午6點(diǎn)

當(dāng)前位置:首頁>> 技術(shù)文章 >> Web開發(fā) >> 從一個(gè)游戲存檔例子學(xué)習(xí)設(shè)計(jì)模式

從一個(gè)游戲存檔例子學(xué)習(xí)設(shè)計(jì)模式

收藏 分享 發(fā)布日期:2012-2-12 16:30:44    編輯:admin  文章來源:ActionScript3天地會(huì)  點(diǎn)擊率:

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

正題

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

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

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

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

廢話了這么多,看代碼,游戲主類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儲(chǔ)存
                        zmyspc= new Hero(1000, 200, 100);//我是英雄!
                        gameSaver= new SaveManager();//存檔管理者
                        zmyspc.show();//顯示角色當(dāng)前狀態(tài)
                        gameSaver.save = zmyspc.getState();//存檔了
                        zmyspc.dead();//我掛了。。
                        zmyspc.show();
                        zmyspc.recoveryState(gameSaver.save);//讀取存檔,又是一條好漢!
                        zmyspc.show();
                }
                
        }
        
}

本文章由南寧網(wǎng)站建設(shè)南寧網(wǎng)站優(yōu)化、南寧網(wǎng)絡(luò)公司整理,轉(zhuǎn)載請(qǐng)注明出處:http://www.hjnf.com.cn/

關(guān)于我們 | 域名主機(jī) | 建站套餐 | 企業(yè)動(dòng)態(tài) | 成功案例 | 網(wǎng)站推廣 | 建站知識(shí) | 常見問題 | 聯(lián)系我們

南寧煙寒網(wǎng)絡(luò)竭誠為您免費(fèi)提供南寧網(wǎng)站建設(shè)、南寧網(wǎng)站設(shè)計(jì)、南寧網(wǎng)站優(yōu)化、維護(hù)以及網(wǎng)站技術(shù)很方面的網(wǎng)絡(luò)服務(wù)!

南寧網(wǎng)站建設(shè)、南寧網(wǎng)絡(luò)公司咨詢熱線電話:0771-5306126 18967841786(24小時(shí)全天電話)

煙寒網(wǎng)絡(luò) - 讓你進(jìn)一步走向成功

主站蜘蛛池模板: 弥勒县| 那曲县| 咸宁市| 且末县| 云和县| 东山县| 辉南县| 桐庐县| 涞水县| 泌阳县| 安国市| 蕲春县| 台南市| 莲花县| 阳春市| 视频| 瑞安市| 满洲里市| 龙井市| 城固县| 邯郸县| 翁牛特旗| 柳河县| 福泉市| 扶绥县| 常山县| 加查县| 青岛市| 清水河县| 乃东县| 玉田县| 馆陶县| 三河市| 新绛县| 上饶县| 宁陵县| 江山市| 三门峡市| 大宁县| 无锡市| 蕲春县|