




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、蝸牛游戲程序編碼規(guī)范(版本ol ) 規(guī)范說明: 一、命名規(guī)貝y 、 程序的版式. 三、 注釋 四、 服務端平臺無關 五、 服務端表格操作 六、 客戶端文件讀寫 七、 客戶端內存操作 八、 腳本內的注釋 規(guī)范說明: 制定該規(guī)范的目的是讓程序清晰易懂、易維護、易管理。該規(guī)范為強制規(guī)范,必 須執(zhí)行,如果有沒涉及的地方請參考高質量C+-c編程指南。當所在編程環(huán)境(如 MFC Linux)與本規(guī)范有并異時,可以使用所在編程環(huán)境的規(guī)范,但是同一個項冃必須 是統(tǒng) 一的規(guī)范。 最后希望大家都能養(yǎng)成一個良好的程序習慣,一個好的習慣受益終身! 命名規(guī)則 1 所有命名應當直觀且可拼讀,并具有實際意義; 2類名和函數(shù)
2、名用大寫字母開頭的單詞組合而成,接口類名以I開頭; 3常量全用大寫的字母,用下劃線分割單詞,盡量不要使用宏; 4 類的數(shù)據(jù)成員加前綴ni_全局變量加前綴g_,靜態(tài)變量加前綴s_; 5變量名第一個字母小寫,使用“名詞”更“形容詞 +名詞”的詞義表示法; 示例: 局部變量 char *pStri ngBuffer ; int static bool GetVoyageServiceCo un t(i nt 結構類型 struct NodeValue int width; int height; 枚舉類型(枚舉值必須大寫且有前綴) enumVoyageSupportType VOYAGE OS SU
3、PPORT INVALID 二1, VOYAGE_OS_SUPPORT_WINDOWS 二 2 聯(lián)合類型 union Color unsigned cha r arrColor3; struet ColorRGB unsigned char r; unsigned char g; unsignedb; char ; 類類型 class Object int m_width;/ int m_height;/ void SetValue( virtual int GetAreaO ; inline int GetWidthO ; ; 抽象類 int width, int height); /成員函
4、數(shù) /虛函數(shù) /內聯(lián)函數(shù) class ISpriteManager public: virtual int virtual bool ; 自定義類型 GetSpritelDO = 0; IsSpriteExist () 0; typedef unsigned int Number: 全局變量 wt)靜態(tài) 變量 static char (我們不主張使用全局變 g_howManyPeop1e; *s_pStringBuffer; 常量 const float SPRINT_RADIUS 二 100.Of; 回調函數(shù) typedef int (*CALLBACK_SYSTEMINIT_FUNC)(I
5、Kernel * pKernel); 程序的版式 1- 一行代碼只做一件事情,只寫一條語句,語句排版整齊;2.關鍵字之后要留空格,賦 值操作符、比較操作符、算術操作符、邏輯操作符、位域 操作符,如“二” “ +二”“二”、“二 ”“ +”、“、“ (i5) else if (nb) do while (ab); switch (n) easel: break 代碼塊 /獲得字符串長度。 int length 二(int )strlen(pString); 如果長度為空,直接將當前String類對象置空 if (0 二二 length) m_pString = NULL; m_length 二
6、0; 三、注釋 1. 對外暴露的模塊接口全部要求使用“ doxygen”注釋對文件、類、函數(shù)、變量進行注 釋; 2. 所有文件和函數(shù)必須有功能說明注釋,這里不要使用“ doxygen注釋(便于生成 程序文檔); 3. 代碼塊的起始處必須有該代碼塊的功能說明注釋; 4. 通信的消息和命令必須有功能和參數(shù)注釋。 “ doxygen”注釋不例: 接口文件首部 /* filevarithmetic.h briefIString模塊是voyage引擎開發(fā)以及游戲開發(fā)所使用的 算法集合模塊。 authorArmterla X date2007. 12. 1 */ 接口函數(shù)注釋 注意:這些接口注釋都是寫在頭
7、文件里的。 注意:接口參數(shù)要寫IN或者是OUT以表明參數(shù)是輸入?yún)?shù)還是輸出參數(shù)函數(shù)接口注釋 brief param param * * 對任意類型元素的數(shù)組進行快速排序。 pHead IN元素數(shù)組首地址。 ppDstHead OUT輸岀一組經(jīng)過排序的指針。 */ void Quicksort ( void *pHead, void *ppDstHead); 類接口注釋 /* brief IString類是用于在Voyage引擎內部進行字符串處理的類。 IString類可以完成快速的字符串連接、分割、字串查找、字串修改 等功能。 */ class IString public : /* brie
8、f IString默認構造函數(shù)。 remarks使用默認構造函數(shù)構造IString對象不會 申請任何堆內存。 */ IStringO ; /* brief使用標準字符串構造IString類對象。 param pString IN指定源字符串。也就是使用哪個字符串構造當前 IString 對象。 remarks這個構造辦法會申請堆內存,構造時調用一次堆分配。分配空間大小 與參數(shù)指定的字符串長度加1相等。 */ IString ( const char * pString): /* brief析構函數(shù),如果當前IString類對象已經(jīng)申請了堆內存, 該函數(shù)會釋放這個堆內存。 */ 、IString
9、 (); ; 通信的消息和命令 /* brief聊天內容信息 param聊天類型,類型int param聊天內容,類型wstring */ MSG_SERVER_SPEECH二1001模塊內部注釋示例: 文件首部 /* author %USERNAME% file$FILE$ 文 brie件說明 date $DATE$ */ 函數(shù)注釋 /做地形的可視檢測 int TerrainSubObject:IsVisible( int x, int z) 變量注釋 int ValCol; /修改表格的第幾列數(shù)據(jù) 四、服務端平臺無關 1. 服務端程序不要使用依賴于操作系統(tǒng)的API和數(shù)據(jù)類型,以及和操作系統(tǒng)
10、相關的規(guī)貝 以便于未來Windows和Linux平臺切換。 五、服務端表格操作 1服務端表格“ Record的名稱定義也要符合命名規(guī)范; 2. 在操作時不能直接用數(shù)字表示列號; 示例: /表格列號的定義 enum CCR_CLONE_SERIAL = 0, CCR_CYCLE_TIME, CCR_INT0_C0UNT, CCR_C0L_C0UNT ; /表格定義和訪問 pKernel-AddRecord(index, CloneCountRec,CCR_C0L_C0UNT, 128); pKernelSetRecordColType(index , “CloneCountRec, CCR_CL
11、ONE_SERIALV, ARTYPE_INT) : / 副本 號 pKernelSetRecordColType( index , CloneCountRec, CCR_CYCLE_TIME, VARTYPE_INT); / 進 入時間 pKernel-SetRecordColType(index, CloneCountRec, CCR_INT0_C0UNT, VARTYPE_INT); / 進 入次數(shù) 六、客戶端文件讀寫 1. 客戶端必須使用引擎提供的API進行文件的打開、讀寫、關閉等操作。示例: HANDLE hFile 二 _CORE_API-fio-_CreateF訂e(filena
12、me, GENERIC_READ, 0, 0PEN_EXISTING); 辻(hFile 二二 INVALID_HANDLE_VALUE) return false ; DWORD Length 二 _CORE_API-fio-_GetFileSize(hFile, NULL): 辻(Length 0) char pBuffer 二 newcharLength + 1; _CORE_APIfio_ReadFile(hFile, (void *)pBuffer, Length, NULL); _CORE_API-fio-_C1oseHandle(hFile); 七、客戶端內存操作 1. 分配內存
13、并調用默認構造函數(shù): char *p 二 Voy_New( char, 23);等價于 char *p 二 newchar 23; CUnit *p 二 Voy_New(CUnit, 2):等價于 CUnit *p 二 newCUnit2; CUnit *p 二 Voy_New(CUnit, 1):等價于 CUnit *p 二 newCUnit; 2. 釋放內存并調用析構函數(shù): Voy_Delete (p); 如果P是某個類的指針,如: CUnit *pUnit 二 Voy_New(CUnit, 2); char *P 二(char *)PUnit; Voy_Delete(P); 這個時候不會
14、調用CUnit的析構函數(shù),因為傳給Voy_Delete的指針是一個char*的指 針,Voy_Delete認為char*指針沒有析構函數(shù)。 因此,這種情況下,必須把P轉換為Voy_Delete可接受的格式:(對指針的引用) Voy_Delete(CUnit * /這樣就能正確地調用析構函數(shù) Voy_Delete和Vo y_Free會檢查傳入的指針是否為空,也會在刪除后自動把傳入的指針設 為空。 3. 如果只想分配內存,而不想調用構造函數(shù),可以調用: char *p 二 Voy_Malloc( char, 1024); 4. 如果只想釋放內存,而不想調用析構函數(shù),可以調用: Voy_Free (p); 或者: Voy_Delete( char * 5. dl果某個類的構
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫州生育管理辦法細則
- 東莞理工學院《俄語語法(二)》2023-2024學年第一學期期末試卷
- 四川旅游學院《音樂技術應用》2023-2024學年第一學期期末試卷
- 團隊培訓課件圖片
- 第四單元 走進法治天地 復習課件
- 信息通信網(wǎng)絡運行管理員專業(yè)技能復習題
- 聊天機器人在互聯(lián)網(wǎng)客服中的應用與挑戰(zhàn)考核試卷
- 核物理輸入量對快中子俘獲過程核合成的影響
- 沂源縣事業(yè)單位考試題歷年公共基礎知識真題及答案綜合應用能力
- 改進粒子群優(yōu)化算法在無人機運動目標搜索中的應用研究
- 會展策劃考試試題及答案
- 2025零基礎應用DeepSeek手冊
- 建筑節(jié)能與環(huán)保培訓課件
- 微弱的光亮(2024年山東煙臺中考語文試卷記敘文閱讀試題)
- 2024高考物理一輪復習專題93機械振動和機械波練習含解析新人教版
- 廣西現(xiàn)代物流集團招聘筆試沖刺題2025
- 中職班主任班級管理經(jīng)驗分享
- 大學英語六級大綱詞匯正序版
- 《計算機圖形學》課后習題參考答案
- 初三第一學期家長會
- 2022-2023學年天津市北辰區(qū)八年級(下)期末語文試卷
評論
0/150
提交評論