猫史档案馆


【星空小镇物语】

用户:pspandaacepspandaace查看:96 回复:28 评论:10 创建时间:2020-08-01T15:40:15


欢迎来到星空小镇O(∩_∩)O
在这里,你可以交到朋友
可以自由聊天灌水
楼主长时间在线
大家快来一起玩


回复

上一页第 1 页 / 共 1 页下一页
pspandaacepspandaace

欢迎入驻

点赞0


评论


pspandaacepspandaace

空余房间:4(双人房2,单人房1)
一杯咖啡(4星空币   作用:可以送给喜爱的小伙伴哦) 单人床(10星空币)
发一条评论可以获得一枚星空币,用于购买虚拟物品或者与其他用户进行交易,购买素材等等
如果你没有家的话一天会扣除一枚星空币哦

点赞0


评论


pspandaacepspandaace

第一个入驻的用户有10星空币奖励
第二个5枚
第三个3枚

点赞0


评论


pspandaacepspandaace

点赞0


评论


pspandaacepspandaace

王迪发

点赞0


评论


pspandaacepspandaace

先给自己刷

点赞0


评论


pspandaacepspandaace

刷

点赞0


评论


pspandaacepspandaace

。

点赞0


评论


pspandaacepspandaace

点赞0


评论


pspandaacepspandaace

啊啊啊啊啊啊啊啊啊啊啊

点赞0


评论


pspandaacepspandaace

11了耶

点赞0


评论


雨还在下Rc雨还在下Rc


今天第一堂课,教给大家联机的最基本原理!

联机游戏,是编程猫里最多人想做却不知道如何下手的东西,都觉得联机很难,其实如果去掉其他复杂的东西,联机的核心机制反而是最最简单的!

一、误区

最初我和大多数人一样,都认为联机是大佬才会的东西,是很复杂的,其实不然。按照一开始的想法,联机游戏应该是有很多人同时在匹配,然后随机两两配对,也就是同一个游戏有很多人同时在联机玩。后来发现这其实是错的!

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

二、联机的核心机制

在做完《契灵者》后,我才开始思考联机游戏,买了《战棋》看了源码,对于萌新的我,还是不懂。去社区搜索联机教程,发现也是寥寥无几。然后终于有一天,我想明白了。

今天我教大家的是抛开其它复杂的排队,检测离线,如何在两个玩家间产生联动等等东西,这些咱们先不想,咱们就先思考如何匹配!

联机游戏的核心是云变量,有了云变量,才能实现联机,而实现匹配跳转,只需要两个云变量。

三、如何匹配

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

center_image

center_image

2.添加一个匹配按钮,在按钮上拼积木。

center_image

接下来解释一下这段积木的意思。

当开始匹配按钮被点击的时候,让云变量“玩家编码”增加1,云变量“房间”增加1,普通变量玩家等于此时的云变量“玩家编码”。

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

第一个云变量“玩家编码”,是为了在联机中区分谁是玩家1,谁是玩家2,不同的玩家看到的画面当然都是相对的,这个暂时不说,今天单说匹配。

想象一下,老师手里拿着一副按从小到大顺序放好的数字扑克牌。老师要你们一个一个上来领一张扑克牌。第一个拿到扑克牌的人,手里的扑克牌就是1,轮到第二个人的时候,他拿到的扑克牌自然就是2了,第三个人拿到的,当然就是3的扑克牌了,以此类推。

然后老师说,拿到扑克1和扑克2的人,上台来打架……(当然是不可能的!)然后对战就开始了。

同理,如果云变量“玩家编码”的初始值是0,点击一下,云变量变成1了,然后用一个普通变量去等于此刻云变量的值,那么你的号码牌已经确定了,你就是编号为1 的玩家。如果这时候有第二个人点击,云编号是不是又增加1了?那么此时云变量等于2,第二个人也用普通变量等值于此刻的云变量,那么第二个玩家的编号就等于2了。

这个时候玩家的编号就确定了,第一个点击的是玩家1,第二个点击的是玩家2.

既然已经凑齐人了,是不是该开打了?如何判断人够了?这就是云变量“房间”的作用!

每点击一次,房间云变量增加1,所以有两个人点击匹配,房间的值就变成2了。也就是说,现在有两个人了,可以开撸了。所以后面的“如果”语句,就是判断是否该跳转对战了。

于是,可以开始联机了。

问:如果我拼命点击,岂不是自己和自己打了?

理论上是这样,但为了防止同一个玩家没事做,自己点两次匹配,一般都会加一个匹配中的造型,然后来点动画效果,加个积木重复执行直到房间人数等于2。这样的话,按钮程序会在动画效果里循环,同一个玩家点击便不会有变量的改变了。

问:如果有人在对战了,其他人也点击了怎么办?

当然,刚才给大家的代码是不齐全的。可以增加一个当点击时,如果房间人数小于2,正常匹配,否则新建对话“有人在对战了”或者干脆没反应,自由发挥。

问:联机真的这么简单么?

联机当然没有那么简单,要考虑的东西很多。比如有人觉得不好玩喀拉一声就直接关掉网页或者界面怎么办?房间岂不是一直被霸占着?比如怎么样让玩家1看到的和玩家2看到的画面是相对的,很多东西都要考虑,还需要用到很多的云变量去同步两个玩家的状态。

所以建议大家如果要做联机游戏,一开始做些简单的。比如联机石头剪刀布,联机掷骰子之类的,只需要一两个云变量就能同步的游戏。

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

点赞0


评论

NB


pspandaacepspandaace

奇怪的知识增加了。。。

点赞0


评论


SGY喵茶九尾SGY喵茶九尾

az

点赞0


评论

单人间还是双人?

看上面


SGY喵茶九尾SGY喵茶九尾

把一间双人房抢走

点赞0


评论

安排

您的余额:12

建议做成一个游戏哦

好嘞

您的建议我会采用


pspandaacepspandaace

还剩双人间1,单人间2,快来抢啊(现在双人间要3币 单人间2币)

点赞0


评论


pspandaacepspandaace

欢迎新人

点赞0


评论


pspandaacepspandaace

欢迎

点赞0


评论


pspandaacepspandaace

继续刷

点赞0


评论


pspandaacepspandaace

刷

点赞0


评论


pspandaacepspandaace

点赞0


评论


pspandaacepspandaace

刷

点赞0


评论


pspandaacepspandaace

点赞0


评论


pspandaacepspandaace

有人吗有人吗有人吗有人吗有人吗有人吗有人吗

点赞0


评论


pspandaacepspandaace

都25楼了

点赞0


评论


pspandaacepspandaace

点赞0


评论


pspandaacepspandaace

点赞0


评论

最重要的是……这™的,还卡上点了!


SGY喵茶九尾SGY喵茶九尾

突然出现

点赞0


评论

!