KBEngine+Unity+php做個撲克小遊戲-DAY1

來源:互聯網
上載者:User

標籤:white   參數   建立   add   style   fonts   ack   ror   net   

寫這篇部落格的時候其實我已經開發了一大部分了~

php 部分,unity 部分 都已經差不多了 ,由於KBEngine(簡稱kbe)完全沒接觸過,其實很多地方php部分的邏輯都可以直接挪到kbe中完成。實際為了開發效率,同樣的邏輯目前我還是用php寫起來飛快,因此項目的組成有一些小奇葩

現在正在琢磨kbe和 php 部分的銜接問題:

1.進入房間時,調用進入介面 /room/join 

2.準備狀態,調用介面 /game/prepare

3.

a.當php檢測到準備玩家數量 preparedPlayerCount == room.maxPlayerCount 時(最後一名玩家調用準備介面),由php端產生一個52張牌(不含大小王)的牌池,然後shuffle 洗牌~ 如果追求極致可以多shuffle兩次... 將牌池資料插入資料庫表cards_pool,產生新的的poolId 

b.通知kbe發送開始遊戲訊息給房間內所有玩家,並告知剛剛產生的poolId (每個房間的所有牌池中的roundCount 從1開始遞增,即新建立一個房間開始遊戲計算第一輪,每新產生一個牌池則回合數+1)

c.玩家(unity端) 收到訊息後調用摸牌介面 /game/getCards ,介面參數中的cardsCount由具體的遊戲玩法決定每人摸多少張排(例如鬥地主13張),準備遊戲介面:



4.通知kbe發送訊息給最先出牌的玩家(由具體規則決定首先出牌的玩家ID),unity端開始20秒倒計時,倒計時內該玩家需要調用出牌介面 /game/stepCards ,將所出的牌拼接成字串作為參數,如果選擇過,則該參數置null。介面僅記錄出牌步驟至資料庫表 cards_pool_step,不校正牌型是否合法,由unity端自行校正

5.通知kbe發送訊息給下一位玩家重複步驟4,直到 連續有 maxPlayerCount-1條 出牌記錄為null的時候判斷本輪出牌終止,記錄這名玩家的userID,開始下一輪出牌

6.通知kbe發送訊息給這位玩家出牌重複步驟4~5 直到任意一名玩家手牌數量為0(根據具體玩法決定勝利條件),回合結束,由用戶端自行檢測,勝利的玩家調用結束回合介面 /game/roundOver

7.重複步驟2~6 直到任意一名玩家離開房間


===================

介面測試資料:某玩家從牌桌上摸一張後:

  1. {
  2. "error" : "發牌成功",
  3. "errorCode" : "200",
  4. "errorMsg" : "Get Cards Success",
  5. "cardPool" : {
  6. "poolId" : "1",
  7. "createTime" : "2016-11-04 04:50:15",
  8. "cards" : "3_10|3_1|3_6|4_10|3_8|4_12|3_13|4_2|2_6|2_4|1_10|4_3|1_3|2_13|2_8|1_6|4_6|1_9|3_12|1_2|3_7|1_8|3_5|2_2|4_11|1_1|3_4|2_12|4_13|1_11|1_4|2_1|3_3|2_7|2_10|4_4|3_9|2_5|4_7|1_5|3_2|1_13|2_11|3_11|4_9|4_1|1_12|4_8|2_3|2_9|4_5",
  9. "roomId" : "1003",
  10. "roundCount" : "1"
  11. },
  12. "myCards" : "1_7"
  13. }
首碼1~4代表花色 尾碼代表數字

cards 就是shuffle過後的牌池


unity端目前的效果:

打出一張 3帶一對的步驟(桌布的UI素材還沒給我呢 用的我們的麻將桌布):


KBEngine+Unity+php做個撲克小遊戲-DAY1

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.