簡介
前陣子公司說準備試一試h5,於是我決定研究一下,而對於像我這種沒有客戶端經驗的來說,選擇一款入門簡單的h5框架,能省不少事。當時毫不猶豫的就選擇了egret(別問我爲什麼,我也不知道),把整個文檔簡單過了一遍之後,就擼起袖子準備搞事,決定做一款贏三張H5來練練手,於是好戲就這麼開場了。。
不知道有沒有人玩過皮皮麻將,這個跟他玩法基本一致,自己先開房間,然後邀請別人來比賽,每個房間固定能玩5局,最終結算積分,下面先貼一下游戲截圖,注:很多資源都是從歡樂贏三張APP裏面借(chao)鑑(xi)的。
項目介紹
項目地址:http://git.oschina.net/scgywx/threecard
演示地址(用微信打開效果更佳哦):http://three.phporz.com
客戶端使用egret框架,語言使用ts(js的超集),最終都會生成爲js,而服務端則是使用php,服務端框架是yaf(鳥哥出品),協議使用websocket,網關使用fooking。
client //客戶端源代碼
libs //egret的庫文件
bin-debug //debug版本代碼
bin-release //release版本代碼,發佈的時候需要從這個目錄copy文件
resource //資源文件,包括圖片和skin(這個目錄是經過tm合併過的文件)
resource-all //這個是資源文件沒有經過tm合併的
src //這就是源代碼了
index.html //入口文件(這個文件發佈後會命名爲game.html)
web //網頁相關
api //遊戲相關http的api,如登錄、服務器信息等
api.php //api統一入口文件
game //遊戲客戶端目錄
libs //egret庫文件
resource //資源文件
game.html //遊戲頁面
index.html //入口頁面(這個頁面會根據不同版本跳轉,防止客戶端cache)
main.min.js //整個遊戲邏輯代碼
version.js //game.html文件的版本號
server //服務端代碼
config //配置文件
controllers //控制器
crontab //定時器,主要用於處理斷開連接的玩家
library //庫文件
models //具體邏輯
protocol //協議部分
tools //工具
release.php //發佈版本的時候,需要執行這裏,會複製client/bin-release/web/v1目錄下的文件,並且處理版本號
客戶端配置
只需要使用nginx或者apache,將目錄指向web/game目錄即可
API配置
需要支持php環境,然後將目錄指向web/api目錄即可。如果api的域名不是127.0.0.1,可以在web/game/game.html中修改API_SERVER。
服務端配置
服務端部分使用php,那麼跟客戶端交互使用fooking來維護長連接,所以必須要需要先架設fooking,這裏就不詳細講了,感興趣的朋友可以點擊這裏,然後將目錄指向server即可,配置端口號9005.
服務端還需要使用redis,用來保存遊戲信息(同時別忘了php要安裝phpredis擴展哦),然後配置有兩個地方,一個是server/config/redis.php,另一個是web/api/api/include/config.inc.php。
結語
這是我初學egret練手項目,難免有些地方處理欠妥,如果有入不了法眼的地方,望輕噴。同時還希望各位能提供更好的建議和意見。