本發明涉及游戲技術領域,更具體地說,它涉及移動終端網頁游戲技術,尤其涉及一種基于移動終端的網頁游戲實時對戰的實現方法。
背景技術:
移動終端網頁游戲是基于移動終端的web網頁瀏覽器的網絡游戲,無需下載客戶端,主要是指基于html5的網頁游戲,游戲的實體是網頁形式,主要是移動終端的網頁瀏覽器或者像微信這一類軟件微信的內置瀏覽器來顯示與進行游戲。
目前html5的網頁游戲比如說“見縫插針”、“找你妹”等html5的網頁游戲,都是單機游戲,玩家不能與其他玩家一起實時對戰,只能在未進行游戲時通過查詢玩家排行榜來獲知其他玩家的戰績。這就造成目前的html5網頁游戲,玩家之間沒有實時互動,游戲體驗差。
技術實現要素:
針對現有技術存在的不足,本發明的目的在于提供一種基于移動終端的網頁游戲實時對戰的實現方法,利用該方法可以實現html5的網頁游戲玩家之間的實時對戰互動。
為實現上述目的,本發明提供了如下技術方案:
一種基于移動終端的網頁游戲實時對戰的實現方法,包括如下步驟:
s1、將各個玩家的客戶端與服務器建立長連接;
s2、由一名玩家在客戶端上的網頁端創建游戲房間,其他玩家在各自的網頁端上根據房間id查詢服務器并進入該游戲房間內;
s3、由創建游戲房間的玩家在網頁端發起開始游戲,其他玩家也同時開始游戲;
s4、當游戲玩家有分數產生時,網頁端通過客戶端將分數上傳至服務器,服務器將接收到的玩家分數發送至各個客戶端,各個網頁端對玩家分數實時顯示。
采用上述方案,在游戲進行的過程中,在同一個游戲房間內的玩家有分數產生時,該玩家的客戶端將分數上傳至服務器,服務器再將該分數發送至該房間內的其他客戶端,其他客戶端上的網頁端就能顯示該分數,這樣玩家可以看到其他玩家的實時對戰分數。該方法增強了玩家間的互動性,提高了游戲的趣味性。
作為優選方案:所述客戶端與服務器建立長連接是靠發送心跳包實現的。
作為優選方案:所述房間id是由服務器根據玩家id和時間戳生成的。
采用上述方案,可以保證服務器生成的房間id為唯一的id,防止出現相同的房間id,保證各個玩家能找到指定的房間。
作為優選方案:在創建房間的玩家發起開始游戲后,服務器會將該玩家的id與當前房間id進行比對,以驗證該玩家是否為當前房間的房主,只有在驗證成功時,才能發起房間內所有玩家開始游戲。
采用上述方案,在房主發起開始游戲的命令時,服務器對其身份進行驗證,確定其確實為當前房間的房主后才會通知該房間內的其他玩家開始游戲,這樣能保證游戲的安全性,避免外掛。
與現有技術相比,本發明的優點是:本發明在傳統的html5網頁游戲的基礎上加入了玩家間實時對戰的功能,顛覆了傳統的html5的網頁游戲玩法,增強了html5網頁游戲的趣味性,并且使網頁游戲有了競技性、互動性。
附圖說明
圖1為客戶端與服務器建立連接的交互流程圖;
圖2為創建房間和加入房間的交互流程圖;
圖3為玩家之間實時對戰的交互流程圖。
具體實施方式
本發明是通過以下技術方案實現:
玩家通過客戶端上的裝載的瀏覽器,訪問網頁游戲網站,打開網頁游戲。
客戶端和服務器端建立長連接通信,長連接建立之后,客戶端需要向服務器發送心跳包,保持兩者之間的長連接一直存在,并且能正常進行通信,如圖1所示。
參照圖2和圖3,玩家需要在客戶端的網頁游戲中建立一個游戲房間,服務器會根據玩家的id和時間戳生成一個唯一的房間id,其他的玩家通過手中的客戶端打開網頁游戲,并在網頁游戲界面輸入房間id點擊查詢或是在游戲的房間列表中點擊已經創建的房間列表,點擊就可以進入游戲房間。
建立房間的客戶端點擊開始游戲之后,服務器收到房主的開始游戲命令后,會對房主信息進行檢測,如果房主id和房間id一致,則判斷發起開始游戲的確實是該房間的房主,此時,服務器會給房間內所有的玩家發送開始游戲命令,房間內的所有成員收到開始游戲命令后,客戶端會調用瀏覽器內核打開網頁游戲進行游戲實時對戰。
客戶端玩網頁游戲產生分數時,網頁端通過javascript接口,調用web端即時通信技術,通過客戶端的瀏覽器內核把分數發送至客戶端,客戶端得到分數之后,將分數上傳至服務器,服務器將該分數發送至該房間內的其他客戶端,其他客戶端收到分數之后,又調用javascript接口,通過客戶端的瀏覽器內核把分數傳給網頁端,這樣所有玩家在網頁端都知道了別人的實時分數,達到了實時對戰的目標。
以上所述僅是本發明的優選實施方式,本發明的保護范圍并不僅局限于上述實施例,凡屬于本發明思路下的技術方案均屬于本發明的保護范圍。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理前提下的若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。