游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4840|回复: 0

教你利用工具将单机游戏改造成对战网游

[复制链接]

8717

主题

8783

帖子

1万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
11952
发表于 2018-7-6 13:37:18 | 显示全部楼层 |阅读模式
文/农夫与射手

前言:本Demo原来是Cocos Creator官方的一个Demo,本文章利用了第三方联网插件工具Matchvs将其改造成了一个三人对战的Demo(点击文末阅读原文,可获取在线体验地址)。

注意:

1.游戏满三人才可以开启,匹配成功后,玩家通过键盘AD键操纵小怪物向左向右移动抢摘星星。

2.下载Demo源码后,需用Cocos Creator打开工程(建议使用1.7.0及以上版本)。

游戏配置

Demo运行之前需要去Matchvs 官网配置游戏相关信息,以获取Demo运行所需要的GameID、AppKey、SecretID。如图:

微信图片_20180706132858.png

微信图片_20180706132901.png

获取到相关游戏信息之后,运行Demo,即可进入房间,准备开始游戏,如图所示:

微信图片_20180706132903.png

初始化SDK

在引入SDK之后,在初始化前需要先调用Matchvs.MatchvsEngine.getInstance()获取一个Matchvs引擎对象实例:

微信图片_20180706132905.jpg

另外我们需要定义一个对象,该对象定义一些回调方法,用于获取游戏中玩家加入、离开房间、数据收发的信息,这些方法在特定的时刻会被SDK调用。

微信图片_20180706132906.jpg

为方便使用,我们把engine和reponse放到单独的文件Mvs.js中,使用module.exports将它们作为全局变量使用:

微信图片_20180706132908.jpg

其他文件可以用require函数引入engine和reponse:

微信图片_20180706132910.jpg

完成以上步骤后,我们可以调用初始化接口建立相关资源。

微信图片_20180706132911.jpg

注意 在整个应用全局,开发者只需要对引擎做一次初始化。

建立连接

接下来,我们就可以从Matchvs获取一个合法的用户ID,通过该ID连接至Matchvs服务端。

获取用户ID:

微信图片_20180706132913.jpg

用户信息需要保存起来,我们使用一个类型为对象的全局变量GLB来存储:

微信图片_20180706132914.jpg

登录:

微信图片_20180706132916.jpg

加入房间

成功连接至Matchvs后,立即随机匹配加入一个房间进行游戏。

代码如下:

微信图片_20180706132917.jpg

停止加入

我们设定如果有3个玩家匹配成功则满足开始条件且游戏设计中不提供中途加入,此时需告诉Matchvs不要再向房间里加人。

代码如下:

微信图片_20180706132919.jpg

在这里需要记下房间的用户列表,记入到全局变量GLB.playerUserIds中,后面要使用到。

发出游戏开始通知

如果收到服务端的房间关闭成功的消息,就可以通知游戏开始了。

微信图片_20180706132920.jpg

微信图片_20180706132922.jpg

游戏数据传输

游戏进行中在创建星星、玩家进行向左、向右操作时,我们将这些操作广播给房间内其他玩家。界面上同步展示各个玩家的状态变化。

其中星星是房主创建和展示,然后通知其他玩家,其他玩家收到消息后展示,相关的代码如下:

微信图片_20180706132927.jpg

微信图片_20180706132928.jpg

玩家进行向左、向右操作时,这些消息会发送给其他玩家:

微信图片_20180706132930.jpg

微信图片_20180706132932.jpg

微信图片_20180706132934.jpg

考虑到数据同步会有延迟,不同客户端收到的数据的延迟也会有差异,如果只在同步玩家左右移动的操作数据,那么过一段时间之后,不同客户端的小怪物位置可能会不一样,因此每隔一段时间还是需要再同步一次小怪物的位置、速度和加速度数据:

微信图片_20180706132935.jpg

微信图片_20180706132937.jpg

最终效果如下:

微信图片_20180706132939.jpg

搞定。
via:游戏扶持by腾讯游戏学院


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-24 16:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表