教你利用工具将单机游戏改造成对战网游
前言:本Demo原來是Cocos Creator官方的一個Demo,本文章利用了第三方聯(lián)網(wǎng)插件工具Matchvs將其改造成了一個三人對戰(zhàn)的Demo(點擊文末閱讀原文,可獲取在線體驗地址)。
注意:
1.游戲滿三人才可以開啟,匹配成功后,玩家通過鍵盤AD鍵操縱小怪物向左向右移動搶摘星星。
2.下載Demo源碼后,需用Cocos Creator打開工程(建議使用1.7.0及以上版本)。
游戲配置
Demo運行之前需要去Matchvs 官網(wǎng)配置游戲相關(guān)信息,以獲取Demo運行所需要的GameID、AppKey、SecretID。如圖:
?
獲取到相關(guān)游戲信息之后,運行Demo,即可進入房間,準備開始游戲,如圖所示:
?
初始化SDK
在引入SDK之后,在初始化前需要先調(diào)用Matchvs.MatchvsEngine.getInstance()獲取一個Matchvs引擎對象實例:
?
另外我們需要定義一個對象,該對象定義一些回調(diào)方法,用于獲取游戲中玩家加入、離開房間、數(shù)據(jù)收發(fā)的信息,這些方法在特定的時刻會被SDK調(diào)用。
?
為方便使用,我們把engine和reponse放到單獨的文件Mvs.js中,使用module.exports將它們作為全局變量使用:
?
其他文件可以用require函數(shù)引入engine和reponse:
?
完成以上步驟后,我們可以調(diào)用初始化接口建立相關(guān)資源。
?
注意 在整個應(yīng)用全局,開發(fā)者只需要對引擎做一次初始化。
建立連接
接下來,我們就可以從Matchvs獲取一個合法的用戶ID,通過該ID連接至Matchvs服務(wù)端。
獲取用戶ID:
?
用戶信息需要保存起來,我們使用一個類型為對象的全局變量GLB來存儲:
?
登錄:
?
加入房間
成功連接至Matchvs后,二手手游出售立即隨機匹配加入一個房間進行游戲。
代碼如下:
停止加入
我們設(shè)定如果有3個玩家匹配成功則滿足開始條件且游戲設(shè)計中不提供中途加入,此時需告訴Matchvs不要再向房間里加人。
代碼如下:
?
在這里需要記下房間的用戶列表,記入到全局變量GLB.playerUserIds中,后面要使用到。
發(fā)出游戲開始通知
如果收到服務(wù)端的房間關(guān)閉成功的消息,就可以通知游戲開始了。
?
游戲數(shù)據(jù)傳輸
游戲進行中在創(chuàng)建星星、玩家進行向左、向右操作時,我們將這些操作廣播給房間內(nèi)其他玩家。界面上同步展示各個玩家的狀態(tài)變化。
其中星星是房主創(chuàng)建和展示,然后通知其他玩家,其他玩家收到消息后展示,相關(guān)的代碼如下:
?
玩家進行向左、向右操作時,這些消息會發(fā)送給其他玩家:
?
考慮到數(shù)據(jù)同步會有延遲,不同客戶端收到的數(shù)據(jù)的延遲也會有差異,如果只在同步玩家左右移動的操作數(shù)據(jù),那么過一段時間之后,不同客戶端的小怪物位置可能會不一樣,因此每隔一段時間還是需要再同步一次小怪物的位置、速度和加速度數(shù)據(jù):
?
最終效果如下:
?
搞定。
總結(jié)
以上是生活随笔為你收集整理的教你利用工具将单机游戏改造成对战网游的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当人工智能遇到游戏
- 下一篇: 关于低分辨率像素游戏下显示非防锯齿中文