團隊做業2

  • 代碼規範

    • a) 代碼設計規範

      • 1.分不一樣函數完成不一樣的特定的任務

        代碼編寫過程當中,應該儘可能把要實現的功能分函數去寫,每一個函數完成特定的一部分功能,即函數的功能就像鄒欣老師說的那樣——「只作一件事,而且要作好」 !最後經過main函數把其餘實現特定功能的函數整合起來。
      • 將功能分函數處理能夠避免咱們在後續開發過程當中代碼的重複書寫,而形成結構混亂。並且這樣作也有利於咱們邏輯清晰。

      • 2.使用goto達到函數惟一出口的目的

        這個我就不細說了,我不太同意這種觀點,函數可使用if,else,else if,break,continue,或者其餘布爾型變量來實現這個,使用過多的goto會下降代碼可讀性。
      • 3.經過添加「斷言」的方式對參數進行驗證

        程序要有能力去判斷用戶傳入的參數是否正確,這就須要用到斷言![在這學期以前,從沒據說過什麼斷言!這學期,經過看這本書,才瞭解的。] 斷言的使用,有利於更好的防止bug的發生,防患於未然!是一種一打一的好方法!
      • 4.異常處理

        一段代碼的魯棒性就體如今異常處理上,咱們要考慮清楚,除數是否爲0,數組是否越界等等常見的錯誤,另外咱們須要注意,捕捉一場,是爲了處理他,不要什麼都不作就這樣過去了!對異常進行必定處理,是代碼具備魯棒性纔是咱們進行異常處理的目的。
        異常狀況並不老是會發生,因此在進行異常處理時,還要考慮清楚它的時間開銷空間開銷,是否值得咱們去處理。
      • 5.類——class

        咱們都知道,一些面向對象的程序語言設計,如C++,java,都是基於類實現的。在類的設計上應該注意如下幾點:
        考慮安全因素,數據成員要分清類別:public,private,protected
        數據成員若是聲明成public是很危險的,用inline取而代之。 具體的用法請參加下面的博客
        java中public ,private,protected的區別
        C++中public,private,protected的區別
        Python中public,private區別
        ......
        構造函數
        構造函數中只對數據成員進行簡單的初始化就行,不必執行過於複雜的操做,這個和上面1.是同樣的,每一個函數只執行特定的功能。
        析構函數
        就好比,C語言指針必定要手動釋放,析構函數有他要作的事——清理工做。
        拿不定主意的時候,用成員函數,避免使用運算符
        使用const關鍵字的對參數進行保護
        使用const將參數指向的數據聲明成只讀的,避免在沒必要要的地方修改了這個數據。
    • b)代碼風格規範——簡單,易讀,無二異性(這一部分,只是編寫代碼的習慣,並非硬性要求)

      • 1.變量命名

        函數或者參數的命名,除了要準尋命名規則外,還應該應該避免過多的描述,簡單又能清晰地讓隊友知道變量的做用。儘可能避免表意不清的變量,如i,j,ilovefang等等,這種不能準確表達出變量做用的名字。咱們在開發過程當中遵循以上原則。
      • 2.使用下劃線簡短變量命名

        下劃線的做用:用來分隔變量名字中的做用域標註和變量的語法,如m_name。 下劃線也能夠作前綴。我的理解:使用下劃線去命名的目的,是爲了防止變量命名太長太大,可讀性差。
      • 3.變量命名還應該注意大小寫

        對於有多個單詞組成的變量名,除了可使用下劃線來縮寫之外,還可使用大小寫來區分。例如:jumpduration,全小寫不利於讀寫,這樣:JumpDuration就好一些,還可使用jump_dura進行縮寫處理。
      • 4.註釋

        咱們都知道,程序——是給人看的,不僅僅僅是機器!這樣,註釋就顯得必不可少了!在適當的地方添加適當的註釋,又利於代碼後期的維護和團隊其餘成員的理解。就好比:主函數中包含的其餘函數,要註釋他們是幹什麼的,即做用。
        但同時要注意,不該該過度添加註釋,是當註釋有利於代碼理解,但過度註釋就有些多餘,起不到關鍵的做用。
      • 5.縮進

        使用Tab鍵代替2,4,8個空格,這也是一種隱形規範。
      • 6.使用括號標明優先級

        對於一個複雜的表達式,括號的使用顯得頗有必要,就好比:++*i,這種就讓人不太容易理解了,能夠替換成"++(*i) ",這種一看就知道優先級的
      • 7.分行

        儘可能避免多行代碼擠在一塊兒的狀況,對代碼進行適度分行能提升代碼可讀性。
  • 團隊項目的數據庫設計和ER圖

    • 咱們的大做業沒有用到數據庫,因此這一部分就省略不寫了。 那你可能會有疑惑了?那大家的數據(就好比成績)存在哪裏?
    • 咱們設置了本地的一個存儲變量——ScoreDisplay,在遊戲玩家得分以後,一方面會及時的在玩家屏幕上顯示成績,另外一方面,會在本地保存一個成績變量的副本,而且,播放相應的得分動畫和得分音效。關於得分邏輯的相關js代碼以下:
    gainScore:function (pos) {  
          this.score += 1;
          this.scoreDisplay.string = this.score.toString();
          cc.sys.localStorage.setItem("ScoreDisplay",this.scoreDisplay.string);
          var fx = cc.instantiate(this.scoreFXPrefab).getComponent('ScoreFX');
          this.node.addChild(fx.node);
          fx.node.setPosition(pos);
          fx.play();
          cc.audioEngine.playEffect(this.scoreAudio,false);
      },
  • 功能流程

    • 1.場景選擇功能,提供5個場景,自由切換,一樣的玩法卻能帶給你不同的體驗
      html

    • 2.成績計算功能。[內含一套獨立的成績計算邏輯]
      前端

    • 3.經過點擊鼠標(若是您是在電腦上)或者手機屏幕(若是您用手機打開),使主角跳躍躲避障礙物
    • 4.這裏給出咱們作的項目的二維碼,固然,不是微信web開發者工具上的,那個必需要添加你爲體驗者權限才能使用,這裏的二維碼是cocos creator 上的項目二維碼。使用以前請注意:確保您的手機網速穩定保持在200kb以上,通常使用流量是打不開滴,校園網還有一線但願!能夠嘗試一下啊[嘻嘻]
  • 團隊分工和貢獻分

    姓名 任務 分工比例 貢獻分
    劉宇瑩 遊戲邏輯和腳本代碼編寫人員 50% 10分
    孟鑫菲 遊戲前端設計和測試人員 50% 10分
相關文章
相關標籤/搜索