猫史档案馆


【休闲课程】几分(秒)钟学会联机原理

用户:云休闲云休闲查看:648 回复:20 评论:35 创建时间:2020-03-12T15:35:38


各位训练师大家好,我是云休闲,来编程猫不到一年,可以说是业余中的萌新。今天发这个教程贴,是希望教会大家制作联机游戏。下面正式开始教程!(如果你点开了这个页面,请认真看完直到结束)

联机游戏,是编程猫里最让人发狂的技术,我刚接触联机游戏的时候,我和其他人都觉得联机很难,掏钱包买了代码,勉强看得懂一点,再去买,发现社区里的联机游戏寥寥无几。去论坛里搜,认识了云业余,看了他的教程,发现讲的并不是很详细,还没懂。从那天开始,我每天晚上都在想,在参考了大量代码后,有一天我终于想通了!联机其实非常简单,只是我们将其复杂化了,还陷入了一个误区,这个误区就是:联机游戏等于双人游戏!大错特错!请看下面。

联机游戏不等于双人游戏

双人游戏和联机游戏是不一样的。双人游戏是两个人操控一个键盘,而联机游戏是两个人各操控一个键盘!所以,这两种游戏的概念是不相等的。

如果你已经走出了这个误区,那么你就会问了:联机到底该怎么做?

为了方便大家理解,我会讲得慢一点。

其实现实世界中的很多手游都是联机游戏,想经典的《王者荣耀》,《和平精英》等等,这些游戏中都有一个匹配按钮,当人数凑满时,就会进入游戏。看到这里,你也许就会明白了,制作联机游戏的第一步就是要把人数凑满,也就是匹配功能!匹配是联机游戏的基础,只有成功匹配,才能联机!那么第二步是什么呢?匹配成功后,就会进入对战界面,开始联机,所以,第二步就是要把两个终端交接起来,从而实现联机对战!当这两步都完成后,你的联机游戏就能成功的联机了!当然,你改得考虑一种极端的情况:有人挂机怎么办?

挂机这个问题还是非常严重的,即使你把游戏设计的再好玩,也会因为一点事情而有玩家挂机,可别小看挂机,挂机会让另一位玩家傻傻的在那等。《王者荣耀》评分之所以很低是因为总有人会挂机,导致战力削弱,水晶一下就没了,所以,挂机这个问题还是要重视的!所以制作的第三步,就是要添加心跳检测功能!

制作流程(步骤)图如下:

匹配→显示对手名称→联机对战→心跳检测→数据清空

其实联机游戏,就是按照点击匹配按钮的先后,决定最先点击的两个人进入对战。

一、匹配

匹配是游戏的第一步,如何实现匹配功能呢,既然要将数据连在一起,那就要使用云变量!

1、新建一个云变量(如果连如何添加云变量都不会的话,请不用看这个教程了哈),新建一个云变量命名为“玩家编号”,在新建一个本地玩家编号

center_image

2.添加匹配角色,在按钮上拼积木。

 

center_image

3.添加一个取消角色,并拼上积木:

center_image

 

这段积木是什意思呢?

当开匹配角色被点击的时候,让云变量“玩家编号”增加1,再将本地变量设置为玩家编号,玩家编号的用途联机对战时会讲,我先来解释一下这段积木的意思。

问:为什么要让云变量加1呢?

玩家编号这个云变量有两个用途:第一个上面说过,第二个则是确定匹配中的玩家有多少。由于每点一次,匹配中玩家都会加一,而这里加一的原理也一样。第一个玩家的编号是一,第二个玩家的编号是二。也可以看成是匹配的时间顺序,最先匹配的是一号玩家,第二个就是二号玩家。保持等待积木的用处就是为了知道现在是不是有两个人在匹配,如果是,那么说明人数凑齐了,可以开始游戏了!如果玩家一直匹配不到人,就可以按取消按钮,匹配就会取消,匹配中玩家也会减少,如果现在已经有人在对战了,就新建一个对话框说明一下,其实非常简单。

切换屏幕后,最好可以让对手的名称显示出来,向《第五人格》,当你看到你的队友名字是帅芒果时,你就会明白你匹配到了一个著名游戏主播,信心立马倍增。开局溜监管,快速修机逃生(等等,好像跑题了) 

要显示对手名称,只需要下面两段积木:

center_image

设置对手名称

center_image

 

显示对手名称

这里用两个云变量记录对手名称,通过侦测玩家编号来显示对手名称。这两段积木比较好理解,我就不多说了。

下面到了第二步,联机对战。

由于游戏的多样性,我暂时找不到合适的积木来帮助理解,这里我用一些文字来向大家说明。

联机对战,如果否则积木是要用很多次的,之前设置了玩家编号,我们用玩家编号来侦测玩家的身份,并用云变量记录数据,具体我恐怕不能直观地告诉大家,这里举一个例子来帮大家理解。

例:假设我们要制作一款叫做“炉石传说”的游戏,玩过炉石的都知道,炉石传说是按回合进行操作的,当卡牌布置完毕后,点击结束回合按钮将回合给另一方,假设我们设定只有是自己回合时才显示结束会和按钮,那就需要使用下面这段积木:

center_image

通过侦测玩家编号和回合方,显示或隐藏。

联机对战我就不多说了,下面来讲制作心跳监测系统。

首先我先展示一段积木:

center_image

同样也是侦测玩家编号,使心跳增加,这里设置每过一秒就增加一次。当玩家挂机时,心跳就不会增加,在用下面这一段积木侦测:center_image

这里设定为挂机十五秒,另一方直接胜利。

center_image

当玩家胜利后,清空云数据,方便下一次联机。

另外如果在线玩家数等于一,说明没有人在联机,也要清空玩家数据:

 

center_image

 

最后说一句,光看教程没有用,只有正真动手做才能真正进步和学会知识。

 


回复

上一页第 1 页 / 共 1 页下一页
云休闲云休闲

emotion_编程猫_伤心我辛辛苦苦写的教程贴竟然没有人看!emotion_编程猫_伤心emotion_编程猫_伤心看来我真的写不好教程贴!emotion_编程猫_伤心

点赞0


评论

我看····不要伤心····

对了帮我看一下小说行不行才刚写几小时,刚开始写https://shequ.codemao.cn/wiki/novel/cover/62354

链接打不开,麻烦告诉我小说名。

我看的很认真啊

打不开?不可能啊

说小说名,我去搜。

名字是五行精灵传

点个赞安慰一,


云休闲云休闲

没人看emotion_编程猫_伤心

点赞0


评论


ChthollyChtholly

喵,虽然我早就会了

点赞0


评论

感谢支持!

不客气,我大号因为打广告被封号了,现在用的是废弃账号

。。。


机智的蓝雀机智的蓝雀

牛啊

点赞0


评论


Leo韩Leo韩

厉害

点赞0


评论


嗯哼君 渠源嗯哼君 渠源

因为之前研究过,居然看懂了

其实从你这里找到了一个突破口:就是云变量本身的缺陷

其他的东西,很多dalao在很久之前就研发出来了,遂不作评价

吸引我的是你制作的游戏内容,估计你也是之前有了很多次尝试吧,最终才选择了回合制游戏

我之前做过的游戏,之所以失败就是因为云变量本身太卡,导致数据不能同步

而回合制游戏也很完美地解决了这个问题,之前我为啥就没想到呢?

所以说,不要去尝试纠结如何让与云变量同步

换种思路,说不定就是海阔天空emotion_doge

点赞1


评论

其实呢,只前我也做过代码研究,然后做了很多尝试品,结果都失败了。直到最近nemo上出了一个联机游戏,我亳不犹豫地看了代码,结果就看懂了。然后我买了云业余的单机游戏拆弹专家,并尝试将其改为联机游戏,做完后找人测试一下,结果发现一点问题都没有,上面的代码全都来源于我的拆弹专家。非常感谢您的支持!

加油吧,毕竟你现在已经达到很多少院士的水平了

你不就是云业余的小号吗

哦哦

对了,你是不是那个写小说的?

我确实是主攻小说区,怎么了吗?

你那个小说什么名字?

代表作《玊兽》系列,此外还有很多就不说了

啊哦


一只小喵一只小喵

牛人!!!

点赞0


评论


胤祁YQ胤祁YQ

大佬啊

点赞0


评论

我来编程猫还不到一年,算不上什么大佬。非常感谢您的支持!

大佬!


ChthollyChtholly

厉害,完美解决云变量延迟

点赞1


评论

仅供参考啦,毕竟这种回合制的游戏并不多。


QMS秦某人QMS秦某人

emotion_编程猫_加油emotion_编程猫_点赞

点赞0


评论


升格者罗兰升格者罗兰

看不懂

点赞0


评论

第一个看不懂的…

怎么编角色走来走去?(编程盲X1)

这是联机教程,基础知识可以看别人的教程。

好高级哇

所以说你先去看基础教程嘛


喵系少女喵系少女

真爆炸引线是什么?

点赞0


评论

我自己作品里的,你不用管

那我要加吗,不用?


originorigin

??????

点赞0


评论


originorigin

有2组人一起玩不就混乱了吗?

点赞0


评论

看不懂不要乱说

其实我发错哩


iRockysiRockys

作者,

我看了云业余的帖子

还以为你是他的小号呢

你们的名字我醉了

不过作者还是好厉害

大佬!!

点赞0


评论


壹湫壹湫

看不懂emotion_编程猫_伤心

点赞0


评论

这个教程贴讲的不是很详细,到时候再发布一个


AuroraerstrAuroraerstr

搞得我想弄个“云娱乐”,没事吧?说干就干

点赞0


评论


YLS月狼菌YLS月狼菌

浏览好多啊

点赞0


评论

所以呢?感觉讲的还是很不详细啊


樱陌若兰樱陌若兰

如果我要做6人联机呢

点赞0


评论

那就建一个云变量,用一个符号隔开,读取的时候再用那个分开代码把数据分开


樱陌若兰樱陌若兰

厉害啊!imgsrc="https://static.cod喵/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E5%8E%89%E5%AE%B3%E4%BA%86.gif"alt="emotion_编程猫_厉害了"

点赞0


评论