python+Layaair引擎學作html5棋牌遊戲開發

過年這段時間,無聊就開始練習作遊戲開發,因爲經驗不足,並且本身規定限制在20天以內完成,所以只能瞎子摸象,一步步摸索。沒有遊戲代碼樣本、沒有H5遊戲經驗、沒有前端開發知識。前端

練習目標:作個棋牌遊戲玩玩。python

1:選擇遊戲引擎,這個開源的有不少選擇,好比egret、Phaser、cocos2d-JS、layaair等,能夠根據本身的選擇,我這裏選擇layaair,開發語言是typescript。web

2:遊戲服務器,H5遊戲通常用websocket作主要的協議,能夠的話在websocket中用protobuf協議來和服務器通訊,我這裏選擇了python作服務器。typescript

先說明一下,涉及到了網絡傳輸和數據庫等操做,python不會比其餘語言慢,由於服務器不是用來密集型計算的,而是在於IO,服務器主要耗時在於讀寫數據庫和網絡傳輸。此外目前python在手遊中作爲服務器的比例愈來愈高。數據庫

遊戲服務器設計:服務器

遊戲服務器 table,play類等:websocket

table類主要屬性包含:網絡

tableCase#目前房間狀態,空閒 搶莊,準備,投注,結算等等

tablePlays#遊戲玩家

tableZhuangjia#莊家

tableforbiddener#黑名單 

tableRoomer #房主

tableModel #房間模式 ,搶莊或者指定莊家

tableroomCard#當前牌桌的總局數,超過局數就結束

tableCurrent#當前牌局的局數

.........................#等等

tableMaxpeople#房間最大人數

 

table類主要方法包含:socket

def currentTablecase()#當前桌的遊戲狀態

def rwqueue()#當前讀寫隊列

def exeEvent()#服務器間隔10幀執行的隊列

def register(self, newer)#當前牌桌加入新成員

def createRoomIni(self,user,message):#遊戲玩家建立房間初始化參數設置等等

def ready(self,user):#玩家準備

def qiangzhuang(self,user):#玩家搶莊

def getzHuangjia(self,user): #獲得當前牌桌的莊家

..........................#等等

def putQueue()#隊列,客戶端發送的數據保存在table的隊列

 

等等,還有不少的方法不一一列舉了,動畫

play類主要屬性包含有:

userId,username,token#等等

LastRequestDate#上次請求時間

NetBroken#網絡中斷時間,是否重連

selfcase #當前玩家空閒 搶莊,準備,投注,結算等狀態

touzhuData#投注數據等等

..........................#等等

socre#玩家分數

等等,還有不少的屬性不一一列舉了,

客戶端的設置:包含界面、動畫、緩動、濾鏡等動畫。

1:server.ts//主要是處理鏈接服務器,接受等處理

2:sound.ts//聲音的播放處理

3:tween://主要是一些元素的緩動處理

4:ani//一些動畫的播放處理

5:work.ts//遊戲邏輯的處理

相關文章
相關標籤/搜索