进入联机状态后,自然要开始使用联机的功能。
先来了解一下核心积木:
这两个是传递与接受信息的最常用、实用的积木
发送信息具有以下特性:
- 发送信息对象为所在云房间所有玩家(包括发送者)
- 发送信息格式为提前(编辑代码时)定义好的列表
- *每次发送的信息表都会覆盖掉自己及其他玩家在收到该信息前对应列表的所有数据
打个比方,发之前所有人test列表信息如下:
- a
- b
- c
发送者对自己本地的列表加以修改后,他的test列表信息如下:
- aa
- bb
- cc
此时使用发送信息
那么发送者所在房间所有玩家的test列表信息会变成:
- aa
- bb
- cc
接收信息具有以下特性:
- 接收一切对应列表的消息,不论发送者,只看对应列表
- 发送信息为提前定义好的列表
- 为事件积木
其余可参考上文
云房间目前的积木主要有以下几个功能:
- 作用一:传递信号
这是最简单的、没有参数的纯信号.用途比较小,可以理解为云广播
还是拿我的“世界”游戏为例
比如我很勇,召唤了个boss想和其他玩家一起打(多人在线世界中,一切是同步的)
那么我引出boss的时候,大家都应该看见这个boss吧?
咋搞?
直接发送信息呗~ 告诉所有玩家:boss出现了 建一个空列表,名为boss 然后当其他玩家用
收到消息,就可以开始加载和显示boss形象,于是就达到了云广播公共事件的目的.
- 作用二:传输数据
这是最常用的功能,比传递信号常用多了,也是云房间的最初作用
仍以“世界”为例
比如我的角色在联机世界中的坐标、角度、造型、等级、血量……一堆数据要进行实时传输,以便让他人能在他的世界中呈现出一个活灵活现的“我”,从而使我们愉快地游戏
qaq
怎么实现呢?
下面是游戏实例教学,不想看的可以直接跳过
由于没有克隆,所讲方法会愚蠢很多
首先你要清楚你想做多少人联机(所有房间一共的人数) 比如我只想做一个房间的世界,最大人数20 那么恭喜你你需要建20个列表作为用户实时数据表~
并且还要复制出20个被控角色作为其他20个玩家角色的显示~(自己控制的角色脚本不一样) 不要惊讶,CoCo没有角色克隆和控件克隆的情况下,要搞多人在线,只能把玩家一个个对槽. 没有多难,写好一个被控体角色后一个个复制然后修改对应列表就可以 由于这些被控角色显示的是其他玩家的状态,绝大多数情况下,一个房间是没有20人的,而在制作时我们做了20个人的被控体和列表(自己操控的不算),比如一个房间有5人。这就需要隐藏其他15个被控体,不让他们执行脚本。由于只有在房间人数发生变化的情况下才会出现这种问题,所以要用一个事件积木,还要做一个判定。


