<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      炸彈人游戲開發系列(1):準備工作

      前言

      大家好!本系列博文記錄了炸彈人游戲迭代開發的過程。在開發的過程中,代碼會不斷重構,領域模型會不斷演變,高層劃分也會不斷變化。

      博文重點在于記錄面向對象思想運用、重構、迭代開發的過程,對于游戲的實現細節和原理不會深入討論。

      如果您對RPG游戲的基本概念不熟悉,我推薦您可以先看看HTML5研究小組第二期技術講座《手把手制作HTML5游戲》,它講解了Html5超級瑪麗游戲開發的過程,提出了一些基本概念(如精靈、主循環等)。另外您可以學習它的代碼HTML5超級瑪麗小游戲源代碼,您可以看到它是如何一步一步實現游戲的。

      希望能與大家一起分享游戲開發的過程和樂趣,為大家運用oo思想和實踐迭代開發提供力所能及的幫助。

      關鍵詞

      面向對象、測試驅動開發、重構、迭代、領域模型、炸彈人游戲

      系列博文目錄

      最終成果

      下面是完成整個游戲開發后的成果,大家可以先預覽一下。

      代碼下載

      游戲截圖(已測試通過的瀏覽器:chrome、ff

      演示地址

       

      概念層次結構

      畫布層級

      游戲中包含了包含了多個畫布,其中地圖畫布、炸彈畫布、火焰畫布分別對應地圖層、炸彈層、火焰層,玩家畫布和敵人畫布對應人物層。下面是各個層的層疊順序,地圖層顯示在最下面,人物層顯示在最上面:

       

       

      具體概念請見第2篇博文的“分層渲染”。

      最終的領域模型

      查看大圖

      最終的高層劃分

        層、包

        對應的領域模型

      • 輔助操作層
        • 控件包
          PreLoadImg
        • 配置包
          Config
      • 用戶交互層
        • 入口包
          Main
      • 業務邏輯層
        • 輔助邏輯
          • 工廠包
            BitmapFactory、LayerFactory、SpriteFactory
          • 事件管理包
            KeyState、KeyEventManager
          • 抽象包
            Layer、Sprite、Hash、Collection
          • 全局包
            GameState
        • 游戲主邏輯
          • 主邏輯包
            Game
        • 層管理
          • 層管理包
            LayerManager
        • 實現
          • 人物實現包
            PlayerLayer、MoveSprite、PlayerSprite、EnemySprite、CharacterLayer、PlayerLayer、EnemyLayer、Context、PlayerState、WalkState、StandState、WalkState_X、WalkState_Y、StandLeftState、StandRightState、StandUpState、StandDownState、WalkLeftState、WalkRightState、WalkUpState、WalkDownState
          • 炸彈實現包
            BombSprite、FireSprite、BombLayer、FireLayer
          • 地圖實現包
            MapLayer、MapElementSprite
          • 算法包
            FindPath
          • 動畫包
            Animation、GetSpriteData、SpriteData、GetFrames、FrameData
          • 觀察者模式包
            Subject
      • 數據操作層
        • 地圖數據操作包
          MapDataOperate、TerrainDataOperate
        • 路徑數據操作包
          GetPath
        • 圖片數據操作包
          Bitmap
      • 數據層
        • 地圖包
          MapData、TerrainData
        • 圖片路徑包
          ImgPathData

      前期準備

      現在,就讓我們一起踏上游戲開發的旅程。首先來看看在炸彈人游戲開發中需要的知識和參考的資源。

      需要的知識

      必備知識

      • Html+css
        掌握html常用的標簽,掌握常用的css屬性,掌握div布局、定位等知識。能夠使用html和css來設計和顯示頁面。
      • Javascript
        熟悉Javascript基本語法、原型、閉包、作用域鏈等知識。
      • Html5 Canvas
        了解畫布原理,掌握常用的API,掌握Canvas優化。

      進階知識

      • 面向對象思想
        熟悉oo思想,能夠運用oo來分析、設計、編程。
      • 設計模式
        了解23種設計模式。
      • 領域驅動
        了解模型驅動開發(DDD)的思想。
      • 敏捷開發
        了解敏捷開發流程。
      • 測試驅動開發
        熟悉測試驅動開發流程。

      相關資源

      游戲開發

      Canvas

      初步需求分析

      下面來進行初步的需求分析。首先進行高層的需求分析;然后根據分析結果,輸出用例、功能需求、非功能需求和約束條件。

      確定高層需求

      業務目標

      1. 學習RPG游戲領域的概念和技術。
      2. 學習運用面向對象思想來設計。
      3. 實踐測試驅動開發。
      4. 學習模型驅動設計。
      5. 實踐設計模式。 

      范圍

      • 人工智能

      如敵人使用A*算法尋路。

      • 頁面繪制

      如顯示地圖、人物,實現人物移動動畫。

      • 事件綁定

      玩家通過操作鍵盤來控制炸彈人的行為,因此游戲需要監聽判斷鍵盤事件。

      • 炸彈

      炸彈人能夠放置炸彈,炸彈能夠爆炸并炸死敵人和炸彈人。

      Feature  

      1. 具有良好可擴展性,方便進行二次開發。
      2. 學習RPG領域的概念(如精靈、層、幀的概念),提煉出相應的領域模型。
      3. 能夠顯示動畫。
      4. 敵人能夠追蹤炸彈人。
      5. 炸彈人能夠放炸彈,來炸毀磚墻或炸死敵人。
      6. 游戲規模應該控制為小規模,保持足夠的簡單性。因為開發該游戲主要是用來學習而不是用于商用。

      上下文

      系統、玩家

       

      游戲角色

      • 炸彈人

      炸彈人可以放炸彈。該角色由玩家控制。

      • 敵人

      敵人會追蹤炸彈人。該角色由系統控制。

      高層需求分析的輸出結果

      用例

      功能需求

      • 預加載

      玩家進入游戲后,預先加載游戲使用的圖片到內存中。

      • 顯示地圖

      地圖大小為20 * 20。

      地圖由墻和空地組成。

      墻可以被炸開。

      炸彈人、敵人不能穿過墻、炸彈。

      炸彈人、敵人不能走出地圖邊界。

      • 顯示人物

      在地圖上顯示炸彈人和敵人。

      • 人物移動

      炸彈人和敵人可以在地圖上移動,并以動畫顯示。

      • 敵人追蹤炸彈人

      使用A*算法尋找從敵人所在位置到炸彈人所在位置的路徑,并按照路徑移動。

      如果遇到炸彈人,則游戲結束;如果走到終點時沒有遇到炸彈人,則再次尋找路徑,然后按照路徑移動。

      • 炸彈

      炸彈人移動時也能放炸彈

      不能在一個方格疊加多個炸彈

      炸彈可以爆炸,顯示火焰

      玩家、敵人不能穿過炸彈

      炸彈可以炸掉墻

      炸彈可以炸死玩家、敵人

      可放置多個炸彈(3個),炸彈爆炸時會引爆在火力范圍內的炸彈

      • 控制炸彈人

      玩家可以通過W、A、S、D鍵控制炸彈人的移動方向,一共有上下左右四個方向。

      玩家可以使用空格鍵控制炸彈人放置炸彈

      非功能需求

        質量

          開發期質量

      • 良好的易理解性

      通過記錄日志、SVN提交日志、測試文檔以及注釋和相關的總結文檔,開發人員可以理解游戲的架構設計(參照總結文檔、代碼)及實現(參照日志、測試文檔、代碼)。

      • 良好的可擴展性

      如需要增加一個敵人時,只需要增加相應代碼即可;需要增加一類敵人,只需要增加一個敵人子類及相應的客戶端代碼即可。不用修改已有的代碼,符合開閉原則。

      • 良好的可重用性

      即在游戲中提煉出具有通用性的模塊,供以后復用。

      • 良好的可測試性

      采用TDD開發,保證低耦合高內聚,增強可測試性。

          運行期質量

      無,因為開發炸彈人游戲僅為了個人學習,因此對性能等運行期質量沒有要求。

      約束

      • 開發人員沒有RPG游戲領域經驗

      采用迭代開發的方法,逐步細化。

      本文參考資料

      《軟件架構設計》

      歡迎瀏覽下一篇博文:炸彈人游戲開發系列(2):初步設計

      posted @ 2013-10-16 22:54  楊元超  閱讀(8382)  評論(59)    收藏  舉報
      主站蜘蛛池模板: 国内精品久久久久久久coent | 吉川爱美一区二区三区视频 | 国产精品丝袜一区二区三区| 亚洲国产午夜精品福利| 天天做天天爱夜夜爽导航| 熟妇激情一区二区三区| 免费超爽大片黄| 性人久久久久| 国产成人亚洲精品日韩激情| 国产在线视频导航| 91中文字幕一区在线| 亚洲一精品一区二区三区| 在国产线视频A在线视频| 无码人妻黑人中文字幕| 精品久久久久久无码人妻蜜桃| 日韩在线视频一区二区三区| 亚洲一区二区三级av| 亚洲天堂成人网在线观看| 男女性杂交内射女bbwxz| 影音先锋人妻啪啪av资源网站| 老熟女重囗味hdxx69| 国产精品一区免费在线看| 亚洲最大成人av在线天堂网 | 欧洲性开放老太大| 无码专区 人妻系列 在线| 蜜桃av亚洲第一区二区| 日韩国产中文字幕精品| 亚洲欧美人成电影在线观看| 年日韩激情国产自偷亚洲| 1精品啪国产在线观看免费牛牛| 亚洲国产精品综合久久20| 亚洲综合久久一区二区三区| 亚洲男人在线天堂| 国产成人精品一区二区秒拍1o| 日韩精品中文字幕第二页| 欧美亚洲国产日韩电影在线| 绥德县| 精品久久亚洲中文无码| 亚洲国模精品一区二区| 免费视频国产在线观看| 不卡一区二区三区四区视频|