猫史档案馆


【源灵工作室教程】不想做联机游戏的训练师,不是好训练师!(多人联机教程·中)

用户:阳光的流熔怪Uyt5阳光的流熔怪Uyt5查看:23 回复:17 评论:23 创建时间:2021-01-06T22:22:02


center_image

源灵工作室 一个路人 出品

上一节课链接:https://shequ.codemao.cn/wiki/forum/35喵21

ho大家好这里路人

那么这节课来讲讲如何实现啦

上个教程我们说了用云列表存储信息,用数数法判断各人是否在线

对于之前讲过的云变量数组,我们将它称为playerData,另建一个云数组playerName表示玩家名称,两个数组保持同步

首先,当一个玩家加入游戏(表现为一个脚本开始,当开始被点击)

我们需要判断这个玩家是否有记录(表现为playerName中是否有玩家名称)

如果玩家有记录,那么将角色移动到方块位置并且更新当前的响应t

否则在playerName和playerData中加入玩家名称,默认位置50,50,并且响应t

如果按照我们上一段中的思路,三个变量xyt都要新开一个云数组来分别存储

这里路人教给大家一个更好的办法:字符分割

将x:50,y:50,t:1(三个列表)变成50$50$1(一个列表就可以)

可以看出这是将三个数字放在一起并在中间插入$作为分隔

这样实现:

center_image

能存储,还要能读取:

center_image

这样我们就可以只用一个云列表来存储三个云列表的内容啦!

这就是本章的核心技术:压缩变量

(欧耶)

那么这就是当玩家加入游戏时的代码

center_image

看起来很长,但其实不难,仔细看很容易看懂,加油

完成了原始化数组后,接下来要考虑的是判断玩家是否在线,用我们之前说过的方法

先创建一个变量getting,表示当前是否正在验证在线

当getting=0时,别的程序就知道需要验证了

所以,当前秒数为整秒且还没有人停止时,我们就停止验证并等一会儿开始认证(保证不会多人同时停止验证)

(getting=0表示正在验证)

center_image

center_image

慢着,如果某个开始到一半突然猝 喵(划去)退出怎么办?如果是这样的话程序就会卡住

center_image

center_image

用这个就可以防止程序卡在开始阶段

那么,当getting=0,响应下

center_image

center_image

这一章的代码看似很长,实则很好理解,反复读便可,我们下一篇教程见

(完)

作业:试试实现不更改坐标,在云变量压缩存储方式下写出上下左右移动代码


回复

上一页1 页 / 共 1下一页
传闻中的五音璃音传闻中的五音璃音

dd

点赞0


评论


阳光的流熔怪Uyt5阳光的流熔怪Uyt5

dd

点赞0


评论


阳光的流熔怪Uyt5阳光的流熔怪Uyt5

dd

点赞0


评论


阳光的流熔怪Uyt5阳光的流熔怪Uyt5

dd

点赞0


评论


未命名用户015734未命名用户015734

哈哈哈哈笑哭()

我终于看懂了()这玩意是比谁脑回路转得快(啊不)

观澜不是一个好训练师,因为是个不喜欢联机的屑)

点赞0


评论


阳光的流熔怪Uyt5阳光的流熔怪Uyt5

都没人写写作业吗(笑哭)

点赞0


评论


umbrallawwumbrallaww

啥子东西?emotion_doge

点赞0


评论


阳光的流熔怪Uyt5阳光的流熔怪Uyt5

dd

点赞0


评论


隐日青空隐日青空

不,我不是不想做,而是不会做(doge)

点赞0


评论


传闻中的五音璃音传闻中的五音璃音

一个不会做存档的渣渣看望了路人大佬()

点赞0


评论


月yueyue月yueyue

哦,原来梦儿不是好训练师()

点赞0


评论


­­­­­­­­­­­­­­

wow!!!dd

点赞0


评论


ZNS_RemytowerJimmyZNS_RemytowerJimmy

原来Jimmy不是好训练师emotion_doge

点赞0


评论


晨月霜星晨月霜星

谢谢,对我们帮助很大

点赞0


评论


billy司马白鹿billy司马白鹿

好的

不想做联机的鹿不是好鹿

还好我想做

but……

没看懂【捂脸】

点赞0


评论


billy司马白鹿billy司马白鹿

路人鸭!

你有要建岛3新年的图吗?

我想说大家合一个

我问了海绵和观澜,还没回复

点赞0


评论


零点Zero零点Zero

第三期呢?

点赞0


评论