COCOS2DX 遊戲開發之二六 手遊短連線

2021-06-26 21:03:57 字數 1010 閱讀 8286

手遊中的短連線

手遊採用短連線,好處自然不言而喻,所謂的短連線就是只有需要和伺服器通訊的時候才連線伺服器,通訊完畢就斷開連線,我叫mt也採用了短連線的方式弊端

1.      每次傳送訊息的連線伺服器和斷開伺服器也是一筆不小的開銷

2.      不適合那些大量即時資訊的手遊優點

1.      只在需要同步的時候才和伺服器連線傳送資料, 減少了伺服器的壓力

2.      網路不給力的時候也可以玩,資料傳送失敗可以手動重發,有限的資料足以保證非wifi的網路也可以遊戲

流程圖參考:流程圖/短連線流程圖.edx

短連線的訊息處理

流程圖參考:流程圖/短連線資料傳送.edx

1.兩個msgqueue和客戶端伺服器訊息狀態state都是臨界區資源,主線程mainthread和訊息執行緒msgthread不可同時訪問

2.傳送訊息:mainthread 向msgqueue中push訊息,訊息執行緒從佇列中pop訊息 接收訊息和傳送訊息相反

3.我是用的是cosos2dx引擎,因為不支援多執行緒,所以訊息執行緒msgthread中獲得的訊息一定要壓入到訊息佇列中,主線程mainthread從訊息佇列msgqueue中獲取訊息進行處理,msgthread不能涉及到任何cocos2dx的操作,由主線程mainthread來更新介面

5.由於是短連線,規則就是:主線程一次只能push乙個訊息,egmsgid=0x500  然後主線程處於等待訊息狀態,不斷的獲取判斷訊息執行緒msgthread返回的狀態state,只有收到伺服器回饋的msgid=0x500的相同id的訊息時,才算訊息成功。其餘的像沒有網路,連線失敗,連線超時,接收超時等等錯誤狀態,需要提示玩家是否重發訊息,玩家選擇重發訊息,則在後台重發最後乙個傳送的訊息

**:

Cocos2d X遊戲開發 二

cocos2d x 遊戲開發 程式啟動執行流程 系統設定 視窗解析度 設定模擬器窗體大小 glview setframesize 360,640 設計解析度 可視區域 中也有個設定設計解析度的函式。該函式是設定了我們遊戲設計時候的解析度,也就是可視區域的大小,也就是說設計者初衷的遊戲可視區域的解析度...

cocos2d x遊戲開發之動畫

mygame.h中宣告動畫函式 class mygame public cocos2d layer bool mygame init return true 注意 若按鈕事件中包含切換場景事件,則需要在按鈕事件中新增schedule函式,否則切換場景後,動畫還來不及生成,再次點選按鈕出發按鈕事件,則...

cocos2d x 遊戲優化方案

優化的方案 引擎底層優化 紋理優化 渲染優化 資源快取 記憶體優化.紋理優化 cocos2d x 底層是opengl es實現的。對於圖案片載入的記憶體是2的冪次方。使用的是100 128 會被轉為128 128。如此浪費一定的空間。色深優化 png a8r8g8b8 a1r5g5b5 argb44...