用户:
云休闲查看:35 回复:20 评论:35 创建时间:2020-03-12T15:35:38
各位训练师大家好,我是云休闲,来编程猫不到一年,可以说是业余中的萌新。今天发这个教程贴,是希望教会大家制作联机游戏。下面正式开始教程!(如果你点开了这个页面,请认真看完直到结束)
联机游戏,是编程猫里最让人发狂的技术,我刚接触联机游戏的时候,我和其他人都觉得联机很难,掏钱包买了代码,勉强看得懂一点,再去买,发现社区里的联机游戏寥寥无几。去论坛里搜,认识了云业余,看了他的教程,发现讲的并不是很详细,还没懂。从那天开始,我每天晚上都在想,在参考了大量代码后,有一天我终于想通了!联机其实非常简单,只是我们将其复杂化了,还陷入了一个误区,这个误区就是:联机游戏等于双人游戏!大错特错!请看下面。
联机游戏不等于双人游戏
双人游戏和联机游戏是不一样的。双人游戏是两个人操控一个键盘,而联机游戏是两个人各操控一个键盘!所以,这两种游戏的概念是不相等的。
如果你已经走出了这个误区,那么你就会问了:联机到底该怎么做?
为了方便大家理解,我会讲得慢一点。
其实现实世界中的很多手游都是联机游戏,想经典的《王者荣耀》,《和平精英》等等,这些游戏中都有一个匹配按钮,当人数凑满时,就会进入游戏。看到这里,你也许就会明白了,制作联机游戏的第一步就是要把人数凑满,也就是匹配功能!匹配是联机游戏的基础,只有成功匹配,才能联机!那么第二步是什么呢?匹配成功后,就会进入对战界面,开始联机,所以,第二步就是要把两个终端交接起来,从而实现联机对战!当这两步都完成后,你的联机游戏就能成功的联机了!当然,你改得考虑一种极端的情况:有人挂机怎么办?
挂机这个问题还是非常严重的,即使你把游戏设计的再好玩,也会因为一点事情而有玩家挂机,可别小看挂机,挂机会让另一位玩家傻傻的在那等。《王者荣耀》评分之所以很低是因为总有人会挂机,导致战力削弱,水晶一下就没了,所以,挂机这个问题还是要重视的!所以制作的第三步,就是要添加心跳检测功能!
制作流程(步骤)图如下:
匹配→显示对手名称→联机对战→心跳检测→数据清空
其实联机游戏,就是按照点击匹配按钮的先后,决定最先点击的两个人进入对战。
一、匹配
匹配是游戏的第一步,如何实现匹配功能呢,既然要将数据连在一起,那就要使用云变量!
1、新建一个云变量(如果连如何添加云变量都不会的话,请不用看这个教程了哈),新建一个云变量命名为“玩家编号”,在新建一个本地玩家编号
2.添加匹配角色,在按钮上拼积木。
3.添加一个取消角色,并拼上积木:
这段积木是什意思呢?
当开匹配角色被点击的时候,让云变量“玩家编号”增加1,再将本地变量设置为玩家编号,玩家编号的用途联机对战时会讲,我先来解释一下这段积木的意思。
问:为什么要让云变量加1呢?
玩家编号这个云变量有两个用途:第一个上面说过,第二个则是确定匹配中的玩家有多少。由于每点一次,匹配中玩家都会加一,而这里加一的原理也一样。第一个玩家的编号是一,第二个玩家的编号是二。也可以看成是匹配的时间顺序,最先匹配的是一号玩家,第二个就是二号玩家。保持等待积木的用处就是为了知道现在是不是有两个人在匹配,如果是,那么说明人数凑齐了,可以开始游戏了!如果玩家一直匹配不到人,就可以按取消按钮,匹配就会取消,匹配中玩家也会减少,如果现在已经有人在对战了,就新建一个对话框说明一下,其实非常简单。
切换屏幕后,最好可以让对手的名称显示出来,向《第五人格》,当你看到你的队友名字是帅芒果时,你就会明白你匹配到了一个著名游戏主播,信心立马倍增。开局溜监管,快速修机逃生(等等,好像跑题了)
要显示对手名称,只需要下面两段积木:
设置对手名称
显示对手名称
这里用两个云变量记录对手名称,通过侦测玩家编号来显示对手名称。这两段积木比较好理解,我就不多说了。
下面到了第二步,联机对战。
由于游戏的多样性,我暂时找不到合适的积木来帮助理解,这里我用一些文字来向大家说明。
联机对战,如果否则积木是要用很多次的,之前设置了玩家编号,我们用玩家编号来侦测玩家的身份,并用云变量记录数据,具体我恐怕不能直观地告诉大家,这里举一个例子来帮大家理解。
例:假设我们要制作一款叫做“炉石传说”的游戏,玩过炉石的都知道,炉石传说是按回合进行操作的,当卡牌布置完毕后,点击结束回合按钮将回合给另一方,假设我们设定只有是自己回合时才显示结束会和按钮,那就需要使用下面这段积木:
通过侦测玩家编号和回合方,显示或隐藏。
联机对战我就不多说了,下面来讲制作心跳监测系统。
首先我先展示一段积木:
同样也是侦测玩家编号,使心跳增加,这里设置每过一秒就增加一次。当玩家挂机时,心跳就不会增加,在用下面这一段积木侦测:
这里设定为挂机十五秒,另一方直接胜利。
当玩家胜利后,清空云数据,方便下一次联机。
另外如果在线玩家数等于一,说明没有人在联机,也要清空玩家数据:
最后说一句,光看教程没有用,只有正真动手做才能真正进步和学会知识。
嗯哼君 渠源因为之前研究过,居然看懂了
其实从你这里找到了一个突破口:就是云变量本身的缺陷
其他的东西,很多dalao在很久之前就研发出来了,遂不作评价
吸引我的是你制作的游戏内容,估计你也是之前有了很多次尝试吧,最终才选择了回合制游戏
我之前做过的游戏,之所以失败就是因为云变量本身太卡,导致数据不能同步
而回合制游戏也很完美地解决了这个问题,之前我为啥就没想到呢?
所以说,不要去尝试纠结如何让与云变量同步
换种思路,说不定就是海阔天空![]()
点赞1
评论
樱陌若兰厉害啊!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
评论