用户:
传闻中的三叶查看:1 回复:7 评论:1 创建时间:2019-08-16T10:47:24
CC图鉴-如何利用云变量与列表制作联机游戏
看到论坛上有很多萌新不明白云变量如何使用,也有很多人对联机很感兴趣,但又没有头绪,所以我今天就来详细讲解一下云功能的使用与定义。
信息量较大,可以分开读
(一)云功能的定义
云变量与普通变量不同的地方即是一个需要网络,另一个不需要。
云变量使用者需要登录,普通变量则不需要,云列表也是如此,而正是云功能让所有编程猫的训练师们有了更广阔的发挥空间。
云变量有两种:私有云变量以及公有云变量。
其实很好理解:
公有云变量指的是所有用户、游客共享的变量,无论任何访客都可以使用的变量。
私有云变量则指每一个用户虽然表面上使用的是同一个变量,但是这个私有云变量对于每一个用户来看,显示的内容都是不同的。
我们来做一个很直观的对比,下面我使用A来代表一个变量:
私有云变量:
A—A1—阿短
—A2—编程猫
—A3—小美
公有云变量:
A—阿短、编程猫、小美
而它们的运用方向也很不同,举个例子:
私有云变量可以用户储存密码与账户信息、制作排行榜或游戏进度的存档。
而公有云变量或列表则用于联机游戏、聊天室或制作公告栏等等。
(二)云功能的使用
(1)匹配功能
匹配是一个有联机功能的游戏的一个很重要的部分,匹配就是找到同时在线几个游客,让这几个客户端暂时成为朋友。
首先需要一个云列表,我们可以把它命名为“人员构成”
第一个点下匹配按钮的人会被第一个添加到“人员构成”列表。
我们称第一个点下匹配按钮的人为蓝方
第二个点下匹配按钮的人会被第二个添加到“人员构成”列表。
我们称第二个点下匹配按钮的人为红方
列表中已经有两人了,此时需要将“匹配按钮”替换成“参与观战”
点下观战按钮的人会被添加到“人员构成”列表。
我们称点下观战按钮的人为观战者
观战者此处我不做详细讲解。
当列表满3项时,切换“观战”按钮为“房间已满”
(2)游戏内容
我们拿“云业余”的作品“粒子战衣”做例子,是一个红蓝两方对抗的游戏。
如果玩家在人员构成列表中的项数为1,那么他就是蓝方;
如果是2,那么他就是红方;
如果是第3项,那么他就是观战者。
如果是蓝方,那就操控蓝方角色;
如果是红方,则操控红方角色;
这时,再创建一个云列表,可以命名为“游戏内容”
游戏内容列表用于存储红蓝两方的XY坐标、方向、红蓝两方攻击信息等等。
重复执行让红蓝两方角色移动至列表存储的坐标位置,重复面向列表存储的方向,如果接到攻击信息,那么克隆一枚子弹向与角色同样面向的方向发射。
红蓝方只能操作自己的角色,观战方则不能操作任何角色。
再加上胜败检测的机制,这个游戏就基本完成了,当然只是一个雏形。
(3)在线监测
如果有两方玩家都在游戏中掉线怎么办呢?还不是一直占用着房间吗?
所以要加入在线检测系统,其实非常简单。
在游戏内容云列表中插入两项,分别代表红蓝两方的计数器,我们可以成为红蓝方心跳。
每0.1秒将红蓝心跳各加1,当达到10的时候清零,重复地从0到10、从0到10。
而在计数的同时,检测红蓝两方的数字是否一致,如果不一致的次数达到50次,那么判定其中一方掉线。
注意,每方只负责自己的心跳,不给对方加减心跳。
还有另一种方式,比较简单,如果某一方原地不动超过X秒,那么判定他处于掉线的状态。